-
基本类型是值传递,引用类型是引用传递传递的是自己本身,而String类型是引用类型进行引用传递的时候不会改变,因为String的值是final常量 ,传递与改变的是自己的复制品,与他一样的还有各种基本类型的包装类:{Integer,Character,Byte,Short,Double,Float,Boolean,Long}
-
构造器可以私有,要想实现类方法就得将方法改为静态的方法 public static void
-
构造器不能被继承
-
父类可以强转成儿子,儿子不能强转成父亲
-
继承要自下而上设计,先有子类后有父类,层次不能太多
-
使用this()调用构造器的要点:只能在构造器中使用,必须作为构造器执行体的第一行使用
-
内部类静态化后只能访问外部类的静态成员,增加了局限性
-
内部类静态化后,实例化的时候有没有外部类都可以
-
内部类私有化后,只能通过外部类的自己方法来掉用内部类的成员,外界无法操纵内部类
-
匿名内部类必须继承一个父类或实现一个接口
-
Class类的有参构造对象
-
Class类的无参构造对象
-
Class类里,getDeclaredFields获取所有属性,getFields获取公开属性
-
集合存放的是多个对象的引用,对象本身还在堆内存中
-
因为 Map 集合即没有实现于 Collection 接口,也没有实现 Iterable 接口,所以不能对 Map 集合进行 for-each 遍历
-
进程和线程的区别:
进程:有独立的内存空间,进程中的数据存放空间(堆空间和栈空间)是独立的,至少有一个线程。 线程:堆空间是共享的,栈空间是独立的,线程消耗的资源比进程小的多。 -
Vector线程安全但是查询效率低
-
线程不安全用List,查询多用ArrayList,增删多用LinkedList
-
Map里面只有TreeMap是有序的,HashMap和HashTable都是无序的
-
Hashtable的方法是同步的,HashMap的方法不是同步的。这是两者最主要的区别。Hashtable是线程安全的,HashMap不是线程安全的。
-
TreeSet, LinkedHashSet and HashSet 的区别
TreeSet的主要功能用于排序
LinkedHashSet的主要功能用于保证FIFO即有序的集合(先进先出)
HashSet只是通用的存储数据的集合
相同点:Duplicates elements: 因为三者都实现Set interface,所以三者都不包含duplicate elements Thread safety: 三者都不是线程安全的,如果要使用线程安全可以Collections.synchronizedSet()
不同点:
Ordering: HashSet不保证有序,LinkHashSet保证FIFO即按插入顺序排序,TreeSet安装内部实现排序,也可以自定义排序规则
null:HashSet和LinkHashSet允许存在null数据,但是TreeSet中插入null数据时会报NullPointerException
Java 基础
最新推荐文章于 2022-10-11 00:23:07 发布