javaSE
文章平均质量分 84
jin6872115
这个作者很懒,什么都没留下…
展开
-
在JAVA中线程到底起到什么作用
转自:http://blog.sina.com.cn/s/blog_70a568f40100qbzt.html这是javaeye上非常经典的关于线程的帖子,写的非常通俗易懂的,适合任何读计算机的同学. 线程同步我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其转载 2018-01-04 18:08:43 · 216 阅读 · 0 评论 -
Java 8系列之重新认识HashMap
Java 8系列之重新认识HashMap前利 ·2016-06-24 11:58摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理...转载 2018-03-03 19:15:16 · 102 阅读 · 0 评论 -
排序算法总结
常见排序算法(百度百科)快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。◆稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字,在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法是稳定的。其中冒泡,插入,基数,归并属于稳定排序,选择,快速,希尔,堆属于不稳定排序。...原创 2018-03-03 17:51:17 · 246 阅读 · 0 评论 -
java动态代理理解
代理在作为java的一种设计模式,被广泛应用,在mybatis和spring框架中均有应用。作为初学者,通过资料查询总结所学。代理及现实生活中的中间人或者代理人,负责中间连接工作。在编程语言中,代理定义为:为某个对象提供一种代理,用来控制这个对象的访问。分为静态代理和动态代理,静态代理:代理类和委托类在运行前就确定了相互关系;动态代理:在程序运行过程中生产。静态代理缺点明显,当项目只有很少的类需要...原创 2018-02-27 20:31:11 · 325 阅读 · 0 评论 -
java读写数据总结
对于数据的读写java提供了专门的读写流DataInputStream和DataOutputStream形式进行读写,可以进行各种基本数据类型和字符串以及UTF格式的数组或者单个元素的读写。------------------------------------------------------------------------------------以数组读写为例进行演示:Fil原创 2018-01-05 22:36:41 · 799 阅读 · 0 评论 -
java文件读写效率测试总结
文件读写效率总结文件的读主要考虑:FileInputStream和BufferedInputStream两种输入流,对应的输出流是FileOutputStream和BufferedOutputStream两种输出流。常规认为BufferedInputStream/BufferedOutputStream是处理流,自带大小为8192(8K)字节的缓冲区,效率会比FileInputStream原创 2018-01-05 22:01:21 · 1899 阅读 · 0 评论 -
IO流学习笔记
流包括:字符流和字节流,字符流针对文本文件流包括:节点流和处理流输入流:InputStream(父类:抽象类) ->FileInputSream(子类:节点流)-> FilterInputStream(子类:处理流) - >DataInputStream->BufferInputStream->ObjectInputStream(子类:处理流)输出流:O原创 2018-01-05 19:40:17 · 153 阅读 · 0 评论 -
java Lambda 初识
Lambda表达式的理解为:函数式接口的简写,可以作为参数进行传递//定义接口interface Ifly{void fly();//实现功能飞}interface Italk{void talk();//函数式接口实现功能说}abstract class Animal{void breed() {};}abstract class Duck exten原创 2017-12-26 16:35:39 · 130 阅读 · 0 评论 -
关于ArraysList,LinkedList,HashSet,LinkedHashSet,TreeSet的总结
关于ArraysList,LinkedList,HashSet,LinkedHashSet,TreeSet的总结ArraysList:底层是数组,有序结构,按照进栈先后分配索引,查找方便,属于先进后出,如果从后面取元素,效率快在指定位置添加元素时,(System.arraycopy(elementData, index, elementData, index + 1, size - i原创 2017-12-27 22:40:35 · 1272 阅读 · 0 评论 -
PriorityQueue的数据存储原理
按照数组存储,存储形式为二叉树,示意图如下。数组q.第一个插入元素首先在q[0]位置第二个插入元素在q[1],然后比较q[1]与q[0]的大小,如果q[1]第三个插入元素在q[2],然后比较q[2]与q[0]的大小,如果q[2]第四个插入元素在q[3],然后比较q[3]与q[1]的大小,如果q[3]第五个插入元素在q[4],然后比较q[4]与q[1]的大小,如果q[4]原创 2017-12-30 15:22:33 · 397 阅读 · 0 评论 -
ArrayList、LinkedList的数据存储原理
ArrayList:源码定义了一个数组transient Object[] elementData;(在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。...原创 2017-12-30 16:39:54 · 3244 阅读 · 0 评论 -
HashSet,LinkedHashSet的数据存储原理
HashSet的底层使用的是HashMap结构。LinkedHashSet是在HashSet的基础上记录数据存序列,以数据存储序列作为数组索引,其他操作与HashSet一致插入元素方法:add(),调用方法,使用HashMap的map函数,public boolean add(E e) {return map.put(e, PRESENT)==null;}//以键入元素为键原创 2017-12-30 21:12:17 · 1125 阅读 · 0 评论 -
TreeSet的数据存储原理
TreeSet是对HashSet的排序,可以指定比较器,默认自然升序排序提供众多方法。add方法:public boolean add(E e) {return m.put(e, PRESENT)==null;}使用NavigableMap的put方法。private transient NavigableMap m;此方法由TreeMap进行实现。输入元素作为原创 2017-12-31 10:34:00 · 2383 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的数据存储原理
HashMap的原理与HashSet的存储原理完全一致。请参考HashSet的数据存储原理http://blog.csdn.net/jin6872115/article/details/78939484LinkedHashMap的原理与HashSet的存储原理完全一致。请参考LinkedHashSet的数据存储原理http://blog.csdn.net/jin6872115/ar原创 2017-12-31 10:39:33 · 373 阅读 · 0 评论 -
JVM学习总结
一、JVM的简单架构JVM包括4个部分,类加载器(classloader),运行数据区(runtime data area),执行引擎(execution engine)和本地接口(native interface)组成其中重要部分为运行时区,只要包括五大组件:堆:heap栈:Java stack方法区:method area本地方法栈:native method stack程序计数器:progr...原创 2018-04-28 09:19:50 · 135 阅读 · 0 评论