Java EE面试笔试
2015-12-22 19:32
471 查看
笔试题
实现一个单例模式,饿汉式
考点:单例,线程并发/** * 单利模式 饿汉式 * @author wangxuekai * */ public class Singleton { private Singleton(){} private static Singleton instance = null; public static Singleton getInstance(){ if(instance == null){ synchronized (Singleton.class) { while(instance == null) instance = new Singleton(); } } return instance; } }
/** * 单例模式 懒汉式 * @author wangxuekai * */ public class Singleton2 { private Singleton2(){} private static Singleton2 instance = new Singleton2(); public static Singleton2 getInstance(){ return instance; } }
//测试单例模式 饿汉式 private static void singletonTest() { Singleton singleton = Singleton.getInstance(); System.out.println("第一次---"+singleton); for(int i = 0;i < 10; i++){ new Thread(new Runnable() { @Override public void run() { try { Thread.currentThread().sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } Singleton singleton = Singleton.getInstance(); System.out.println(Thread.currentThread().getName()+"----"+singleton); } }).start(); } }
利用JDK提供的API随机生成50-100之间的整数
考点:java.util.Random;java.lang.Math;package com.interview.test; import java.util.Random; /*** * 利用jdk提供的api,生成50-100之间的整数 * Random用法 * @author wangxuekai * */ public class RandomTest { public static void main(String[] args) { Random random = new Random(); //nextInt(51) 取值范围是 0-50,如果取值为50-100,则可以再增加50 //nextDouble() 取值范围0.0d(包括)到 1.0d(不包括) //nextFloat() 取值范围0.0f(包括)到 1.0f(包括)范围内 for(int i = 0; i <20;i++ ){ System.out.println("第"+i+"个数:"+(random.nextInt(51)+50)); System.out.println("第"+i+"个数:"+(random.nextDouble())); System.out.println("第"+i+"个数:"+(random.nextFloat())); } //利用Math工具类random方法,取值范围0.0~1.0 //Math.round(Double double) 取参数double最近的值 四舍五入 System.out.println(); int i = 0; while(i < 10){ System.out.println(Math.round(Math.random()*50)+50); i++; } } }
对数组冒泡排序
package com.interview.test; /*** * 实现冒泡排序 * @author wangxuekai * */ public class BubbleSort { public static void main(String[] args) { int[] ins = {10,5,9,1,23,90,23,7,2,11}; //Arrays.sort(ins);//利用Arrays工具类sort方法 BubbleSort bub = new BubbleSort(); bub.bubbleSort(ins); bub.show(ins); } //冒泡排序 public void bubbleSort(int[] ins){ for(int i = 0; i < ins.length-1; i++){//外循环,循环次数为数组的长度 for(int j = 0; j < ins.length-i-1; j++){ if(ins[j] > ins[j+1]){ swap(ins, j, j+1); } } } } //互换位置 public void swap(int[] ins,int i,int j){ ins[ 4000 i] = ins[i] ^ ins[j]; ins[j] = ins[i] ^ ins[j]; ins[i] = ins[i] ^ ins[j]; } //打印数组 public void show(int[] ins){ for(int i = 0; i < ins.length; i++){ System.out.print(ins[i]+"\t"); } } }
有一个数组,如{0,1,2,3,4,6,12,0,2,45,66,0,23,4,1},剔除其中的数值0 ,剔除之后为{1, 2, 3, 4, 6, 12, 2, 45, 66}
package com.interview.test; import java.util.Arrays; import java.util.LinkedList; import java.util.List; /*** * 移除数组中 0 * 如{0,1,2,3,4,6,12,0,2,45,66,0,23,4,1} * 移除之后 * {1, 2, 3, 4, 6, 12, 2, 45, 66} * @author wangxuekai * */ public class ArrayTest { public static void main(String[] args) { int[] ins = {0,1,2,3,4,6,12,0,2,45,66,0,23,4,1}; Object[] tmp = remove(ins,0); //通过Arrays.toString()将数组转成字符串打印 System.out.println(Arrays.toString(tmp)); } //通过List来完成 private static Object[] remove(int[] ins,int value) { //声明一个list,用来存储数组中数据 List<Integer> linkedList = new LinkedList<Integer>(); //遍历数组,将值放入list for(int i : ins){ linkedList.add(i); } //获取list中需要剔除value的始末位置,截取list linkedList = linkedList.subList(linkedList.indexOf(value), linkedList.lastIndexOf(value)); //遍历list,剔除value for(int i = 0; i < linkedList.size();i++){ if(linkedList.get(i).equals(value)){ linkedList.remove(i); } } //通过list中的toArray方法转成数组 return linkedList.toArray(); } }
display: none 和 visibility: hidden;区别
display:none 设置元素为不可见,不会占用页面空间。visibility:hidden:设置页面元素不可见,但是会占用相应的页面空间。
类似格式JSON,使用JS取出kay=value
var JSON = { "name":"wangxuekai", "email":"wangxuekai@g.com", "age":"26" };
<script type="text/javascript">
var JSON = { "name":"wangxuekai", "email":"wangxuekai@g.com", "age":"26" };
for(var n in JSON){
alert(n + "===" + JSON
);
}
</script>
$(document).read()和window.load区别
1.window.load要等到页面元素全部加载完毕才会执行,包括静态资源。而(document).read()则只需DOM树建立好就会执行。2.(document).read()方法调用后,传入的方法是追加的形式,方法都会调用。而window.load会覆盖前面的方法。相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树