java
the_conquer_zzy
计算机科学与技术专业
展开
-
Java comparetTo方法和compare()方法比较
由于记忆不清楚,经常忘,今记录之。 首先 compareTo()方法是java.lang.Comparable;下的, 而Comparable自己是实现了排序的算法。 compare()方法是java.util.Comparator;下的。 Comparator接口是用来外部排序的,比如调用Collections.sort()方法是把自己实现的Comparator传原创 2017-02-27 22:25:44 · 847 阅读 · 0 评论 -
java线程池ThreadPoolExecutor和阻塞队列BlockingQueue,Executor, ExecutorService
ThreadPoolExecutor参数最全的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2018-10-17 15:31:43 · 5068 阅读 · 0 评论 -
Integer parseInt() 和valueOf()
java 中Integer.parseInt(String x) 和Integer.valueOf(String x) 其中valueOf()源码:valueOf 利用parseInt() 转变成整数后,再调用下面的valueOf(int i) public static Integer valueOf(int i) { if (i >= IntegerCache...原创 2018-10-16 21:23:45 · 135 阅读 · 0 评论 -
HashMap,Hashtable,SynchronizedHashMap,ConcurrentHashMap
java 的HashMap总结HashMap与HashTable: HashMap key value 都可以是null,Hashtable 不可以, HashMap 线程不安全,Hashtable 线程安全SynchronizedHashMap, ConcurrentHashMapSynchronizedHashMap是采用全部加锁,相当于包装了一层,内部加完锁再调用hashmap,返回的原创 2017-12-07 14:27:58 · 774 阅读 · 0 评论 -
多线程同步相关
CAS compare and swap 处理器支持的指令。是原子的。 此指令是以字节为单位的。同时处理器实现的原子指令还有 FAA fetch and add Test and set Test-Test and set原创 2017-10-15 22:25:14 · 150 阅读 · 0 评论 -
GC之开篇
GC算法评价标准: 在mutator的整个执行过程中 1. 吞吐量 : 堆大小除以GC总时间 2. 最大暂停时间: 最大的GC时间 3. 堆使用效率: GC使用堆的效率 4. 访问局限性: 空间局限性,时间局限性。 寄存,缓存,内存,辅助存储4级存储器。原创 2017-10-10 21:03:23 · 240 阅读 · 0 评论 -
import 和import static
java5 的新特性。 静态导入, import static import 用来导入其他包下面的类或这方法。而import static 可以导入路径下的静态方法,这样的好处是通过静态导入,不再需要类限定名,可以直接使用其他类下的静态方法,就像是自己本类的静态方法一样。所以称之为静态导入。原创 2017-08-14 14:36:27 · 284 阅读 · 0 评论 -
java classpath
java project 中,有一些配置文件需要放在正确的地方,或者说,找一些文件时需要提供正确的路径。如果是普通的java project ,那么classpath 根目录就是 src如果是maven 项目,则路径是src/main/java 或者是src/main/resources原创 2017-08-17 17:56:44 · 152 阅读 · 0 评论 -
多线程学习笔记1
sleep()方法阻塞当前线程,但是不释放锁资源 当执行完synchronized(lock){}代码块中的内容后,自动释放锁资源 wait()方法阻塞当前线程,且释放锁资源,且只能被持有相同锁的其他线程唤醒。否则一直阻塞。notify()方法,严格按照FIFO模式,去持有相同锁的线程队列中唤醒一个线程。这有可能导致死锁。例子就是:当有2个线程的生产者,2个线程的消费者时,会出现死锁。具原创 2017-04-05 17:58:44 · 242 阅读 · 0 评论 -
jvm 类加载机制(ClassLoader)学习总结1
jvm支持两种类型的类加载器:Bootstrap ClassLoader和User-Defined ClassLoader. 所有派生于抽象类ClassLoader的类加载器都是自定义类加载器。 程序中通常类加载器有三个:Bootstrap ClassLoaderExtClassLoaderAppClassLoaderBootstrapClassLoader 启动类加载器,用c++语音编写原创 2017-04-07 16:26:04 · 268 阅读 · 0 评论 -
jvm垃圾回收学习总结2
1. 内存分配原理。当new 一个对象时JVM先在常量池中查找该类的符号引用,然后判断是否被java类装载器,加载,解析和初始化。如果没有,首先由java类装载器进行加载解析和初始化。然后首先试图在**TLAB** ThreadLocalAllocation 本地线程分配缓冲区分配空间。,TLAB是线程私有区域,包含在Edge空间内,目的是为了线程安全,同时能够提升内存分配吞吐量,称之为快速内存原创 2017-04-06 23:02:46 · 253 阅读 · 0 评论 -
JVM 垃圾回收学习总结1
JVM 运行时内存区 (图片为引用,非自创,非商业) jvm的内存区可以根据受访权限的不同,定义为线程共享和线程私有两大类。 线程共享:所有的线程都可以访问的内存区域。线程共享区:java 堆区java 方法区java 运行时常量池1. java 堆区: 存储对象实例,是GC执行垃圾回收的重点区域,GC的回收频率和效率,主要跟该区域的特性有关。 根据jvm对象的存活时间长短,堆区可原创 2017-04-06 22:43:30 · 225 阅读 · 0 评论 -
二叉树的先序,中序,后序遍历
首先为了方便大家记忆,作个解释。先序(preorder) ,中序(inorder),后序(postorder) 这里指的是根节点的遍历顺序,确切叫先根(先根再左右),中根(先左再根再右),还是(先左后又再根)后根的顺序输出。定义TreeNodepublic class TreeNode{ TreeNode left; TreeNode right; int val; TreeNode...原创 2018-10-22 17:32:27 · 169 阅读 · 0 评论