随笔分类 - Java
摘要:1.容器 接口:BlockingDeque(双端队列),BlockingQueue,ConcurrentMap, ConcurrentNavigableMap:有序的map,可以按照key进行范围操作,获取正反序视图,获取子集等等。key按照Comparator或key的自然顺序(实现的Compar
阅读全文
摘要:>>版权声明:本文为原创文章,请不要拷贝转载。 1.前言 在平时工作学习中会接触到一些新的知识点,很多不会经常用到或者来不解总结。所以,先记录在这里。免得以后完全忘了还有这东西。 2.新发现 EnumMap,专门用于枚举的容器 方法引用,1.8新特性(pepole::sing),是lamda表达式的
阅读全文
摘要:>>版权声明:本文为原创文章,请不要拷贝转载。 1.四种内部类介绍 https://www.cnblogs.com/hasse/p/5020519.html 2.为什么成员内部类可以直接访问外部类的成员 原因在于内部类中包含了一个外部类的final引用。 编译后内部类和外部类分别生成独立的class
阅读全文
摘要:数组的读取是高效的。(数组要比链表快) 1.容易预测的访问模式(数组内元素的内存地址的连续性存储的) 2.数组中的元素是会被预加载的(因为只要一个元素被加载到缓存行,其他相邻的几个元素也会被加载进同一个缓存行) 3.你可以为数组预先分配内存,使得数组对象一直存在(除非程序终止)。这就意味着不需要花大
阅读全文
摘要:1.遍历集合 1.如果你要不停的读取同一个数组(从0-length,再从0-length),你会需要一个标识i不停的增加来表示当前读取的位置。 你怎么能快速的算出当前是数组中的那个位置x呢? (1)一般的方式 (2)比较好的方式 如果length是2的n次方,则可以用更快的方式 2.判断偶数
阅读全文
摘要:c中的char是一个字节,java中用两个字节来表示一个字符。 这个要注意c里面的char到java中应该用byte来接收。
阅读全文
摘要:直接缓冲区和非直接缓冲区: 非直接缓冲区写入步骤:1.创建一个临时的直接ByteBuffer对象。2.将非直接缓冲区的内容复制到临时缓冲中。3.使用临时缓冲区执行低层次I/O操作。4.临时缓冲区对象离开作用域,并最终成为被回收的无用数据。如果采用直接缓冲区会少一次复制过程,如果需要循环使用缓冲区,用
阅读全文
摘要:Socket编程注意点: Socket connect(SocketAddress endpoint, int timeout)方法:连接到服务器,并指定一个超时值。超时值零被解释为无限超时。在建立连接或者发生错误之前,这个方法一直处于阻塞状态。【在编写程序时这个超时值最好设置上】 Socket s
阅读全文
摘要:1.不应该大范围,跨多线程共用loger对象。 代码1-2取自AsyncAppender,可以看到使用AsyncAppender对象的buffer作为锁。
阅读全文
摘要:1.将项目导出成jar包。2.在项目的META-INF文件夹中找到MANIFEST.MF,在其中加入一下一行文字: Main-Class: 类的全限定名3.新建一个文件,修改扩展名为batjava -jar xx.jar pause将bat文件与jar包放在一起。4.运行bat文件即可执行Ma...
阅读全文