首页 > 编程语言 >Java tree

Java tree

时间:2022-10-08 15:31:52浏览次数:77  
标签:Java 变量 HashSet tree volatile 引用 java


基础

-Java编程入门

​https://www.ibm.com/developerworks/cn/java/intro-to-java-course/index.html​

-Java对象的强引用,软引用,弱引用和虚引用
强引用,不会回收
软引用,内存充足,不回收,内存不足,回收
弱引用,垃圾回收器线程会回收。
虚引用,相当于没有引用

-Java中volatile关键字的含义

Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。
您只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:
对变量的写操作不依赖于当前值。
该变量没有包含在具有其他变量的不变式中。

为什么使用volatile?
使用 volatile 变量的主要原因是其简易性:在某些情形下,使用 volatile 变量要比使用相应的锁简单得多。使用 volatile 变量次要原因是其性能:某些情况下,volatile 变量同步机制的性能要优于锁。

结束语
与锁相比,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于锁的性能和伸缩性。
​​​http://www.ibm.com/developerworks/cn/java/j-jtp06197.html​​​

-Java中synchronized关键字

这种机制确保了同一时刻对于每一个类实例,其所有声明为 synchronized 的成员函数中至多只有一个处于可执行状态

-Java 多态

Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

-抽象类和接口的区别

1,抽象类是继承关系,一个类只能继承一个类, 却可以实现多个接口,实现多重继承。
2,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为
3,接口定义行为能 够更有效地分离行为与实现,为代码的维护和修改带来方便。
4,抽象类强调继承,接口强调 行为和实现分离。

-动态加载jar包

-集合

将对向放入到HashMap或HashSet中时,有两个方法需要特别关心:hashCode()和equals()。hashCode()方法决定了对象会被放到哪个bucket里,当多个对象的哈希值冲突时,equals()方法决定了这些对象是否是“同一个对象”。所以,如果要将自定义的对象放入到HashMap或HashSet中,需要@Override hashCode()和equals()方法。

HashSet 不保证顺序
LinkedHashSet 保证插入的顺序和 遍历的顺序一样,是HashSet的子类
TreeSet是一个对元素按照某种规则排序
EnumSet 是一个 枚举类型的 集合


Java:集合类性能分析
​​​http://zhangjunhd.blog.51cto.com/113473/69677​​​
java常用集合性能比拼

服务器
apache-tomcat
​​​http://tomcat.apache.org/download-70.cgi​


标签:Java,变量,HashSet,tree,volatile,引用,java
From: https://blog.51cto.com/u_15815563/5738091

相关文章