这些问题是牛客Java专项练习的习题,这里总结的答案参考了牛客习题下面别人的讨论,这里没有列出(太多了不好列)。
continue和break作用
continue跳出本次循环,进入下一次循环;break跳出当前循环体。
以下程序的返回值是什么
一旦在finally块中使用了return或throw语句,将会导致try块,catch块中的return,throw语句失效。
public boolean returnTest()
{
try
{
return true;
}
catch (Exception e)
{
}
finally
{
return false;
}
}
Java访问修饰符作用范围
以哪个说法是对的?
hashMap在单线程中使用大大提高效率,在多线程的情况下使用hashTable来确保安全。hashTable中使用synchronized关键字来实现安全机制,但是synchronized是对整张hash表进行锁定即让线程独享整张hash表,在安全同时造成了浪费。concurrentHashMap采用分段加锁的机制来确保安全
Arrays.asList()
将一个数组转化为一个List对象,这个方***返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。
下面有关SPRING的事务传播特性,说法错误的是
下列代码的输出
静态语句块中x为局部变量,不影响静态变量x的值。
以下程序的输出结果
在调用子类构造器之前,会先调用父类构造器,当子类构造器中没有使用"super(参数或无参数)"指定调用父类构造器时,是默认调用父类的无参构造器,如果父类中包含有参构造器,却没有无参构造器,则在子类构造器中一定要使用“super(参数)”指定调用父类的有参构造器,不然就会报错。
switch
switch(表达式)
{
case 常量表达式1:语句1;
…
case 常量表达式2:语句2;
default:语句;
}
default就是如果没有符合的case就执行它,default并不是必须的.
case后的语句可以不用大括号.
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句。
“abc”保存在常量池,str引用的对象保存在堆里,而java7中又把常量池移到了堆中,所以这题题目就不够严谨。
ThreadLocal
ThreadLocal可以给一个初始值,而每个线程都会获得这个初始化值的一个副本,这样才能保证不同的线程都有一份拷贝。ThreadLocal 不是用于解决共享变量的问题的,不是为了协调线程同步而存在,而是为了方便每个线程处理自己的状态而引入的一个机制。
Java IO
运算符
位运算符
补码
Java内存结构