牛客网 -JAVA刷题-错误知识点总结
1.final不能修饰abstract方法;
2.默认初始化,基本类型是 0 ,布尔类型是 false ,引用类型为null
3.如果类没有构造方法,JVM会生成一个默认构造方法;如果定义了任意类型的构造方法,编译器都不会自动生成构造方法
4.thread.Join把指定的线程加入到当前线程,只有在执行完join的线程后,程序才会继续向下执行
5.常见的线程安全的类
- List下的:Vector ;
- Map下的HashTable 和 Properties;
6.(转自他人答案)
.7.子类重写父类方法时,方法的访问权限不能小于原访问权限,如果方法的默认权限是public,所以子类重写后只能是public
8.常见的线程安全的类有:vector,stack,hashtable,enumeration
9.Java表达式转型规则由低到高转换:
- 1、所有的byte,short,char型的值将被提升为int型;
- 2、如果有一个操作数是long型,计算结果是long型;
- 3、如果有一个操作数是float型,计算结果是float型;
- 4、如果有一个操作数是double型,计算结果是double型;
- 5、被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。
10.反射破坏代码的封装性,破坏原有的访问修饰符访问限制 。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性
11.Math.round(X)方法是把X的值四舍五入(向数值大的方向)。如,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。
12.(转自他人答案)
13.case语句,如果没有break语句的话,将不会结束,一直向下执行,知道遇到break语句。如,
Scanner s=new Scanner(System.in);
int x=s.nextInt();
switch (x)
{
case 1: System.out.println("Test1");
case 2:
case 3:
System.out.println("Test2");
break;
default:
System.out.println("Test3");
break;
}
输入:1
输出:
Test1
Test2
14.常见的用于并发编程的同步器有,
- Semaphore, 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
- CyclicBarrier ,主要的方法就是一个:await()。await()方法每被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
- CountDownLatch,它的await() 方法在倒计数为0之前会阻塞当前线程。
15.可继承的类,
- Number类可以被继承,Integer,Float,Double等都继承自Number类
- ClassLoader可以被继承,用户可以自定义类加载器
16.
持续更新。。。