Java面试题基础篇02 (问题和答案)

上一篇: Java面试题基础篇01 (问题和答案)

15. 下面String的区别 重要

String str1 = “abc”; // 创建1个对象, 放入String 常量池, 一般称为常量对象
String str2 = new String(“abc”); // 创建 2个对象,先 new一个对象,然后判断”abc” String常量池是否有,没有会再创建一个

16. 下面Integer和 int的输出和区别 重要
Integer a1 = 127, b1 = 127; 
Integer a2 = 128, b2 = 128;
System.out.println(a1 == b1); // true 
System.out.println(a2 == b2); // false
// 解释:Integer类内部 通过静态内部类提供了一个缓存池,范围在-128~127之间,
        Integer如果赋值在这个范围之间,会直接指向内存池,如果超出会 new 新的对象。

Integer aa = new Integer(1);
Integer bb = new Integer(1);
System.out.println(aa == bb); //false
System.out.println(aa.equals(bb)); //true
// 解释: 对象只要是new的就是新的内存地址

Integer aa = new Integer(1);
int bb = 1;
System.out.println(aa == bb); //true
System.out.println(aa.equals(bb)); //true
// 解释:Integer 和 int 使用 == 比较时候,会被降维到int

Integer aa = new Integer(1);
Integer bb = 1;
System.out.println(aa==bb); //false
System.out.println(aa.equals(bb)); //true
// 解释:new 的对象 和 栈内存池对象地址不一样
17. Set集合怎么保证数据的不重复

先判断 hashCode,如果不同,直接插入
先判断 hashCode,如果相同,再调用equals,如果不同,再插入

18. 将 ‘abc123’ 字符串反转,把你能想到的方法都写下来。重要

方法一 :StringBuffer

public static String reverse1(String str) {
	return new StringBuilder(str).reverse().toString();
}

方法二: 字符串转化为 char[]

	char[] chars = str.toCharArray()
19. throw 和 throws 的区别

throw是语句抛出一个异常。
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

实例:

public void inputStreamInit () throws FileNotFoundException {
		try {
			InputStream inputStream = new FileInputStream(new File("//"));
		} catch (FileNotFoundException e) {
			throw e;
		}
	}
20. 一个.java源文件中可以有多个类吗?

只能有一个 public 修饰的类
其他作用域类不限制,内部类不限制,可以多类

实例一:

 public class a {}   
 class b {}   
 class c {}  

实例二:

public class A {   
       class B {   
       }   
 } 
21. mysql

mysql分页limit 、
mysql 引擎InnoDB、
Sql速度慢优化,增加索引
Mysql 索引数据结构 B+树。 优点: 单次请求涉及的磁盘IO次数少、查询效率稳定、遍历效率高

22. jsp 和 servlet 的区别

Jsp的本质是servet,只是更注意前端显示。
Servlet更注重后端逻辑,似于一个Controller,用来做控制。

23. 用最有效率的方法计算2乘以8? 重要
 2 << 3
24. java 中break、continue、return之间的区别

break 结束当前运行的循环
continue 结束本次循环,下一次继续
return 结束当前运行方法

25. java中有几种类型的io流?

字符流和字节流。
字节流继承inputStreamOutputStream
字符流继承自InputSteamReaderOutputStreamWriter

26. 字节流和字符流区别

字节流是按字节读取或写入设备,但字符流是以字符为单位读取或写入设备。
如果是二进制文件,需要用字节流读取。
一般来说,字符流只处理文本文件。
在设备中,大多数情况是以字节形式存储数据的,因此字符流通过需要传入字节流当参数。

27. Java有没有goto

goto 是Java中的保留字,在目前版本的Java中没有使用。

28. &和&&的区别?

Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,
当两边的表达式都为true的时候,整个运算结果才为true,否则为false。

&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;
&则两个表达式都执行。

&可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值