您的位置:首页 > 职场人生

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 面试