04 2017 档案
摘要:1.2、中国象棋将帅问题 要求:只用一个字节存储变量,输出将帅不照面的所有可能位置。 思路简单,就是穷举让将和帅不在同一列即可,用char高四字节和低四字节分别存储将和帅的位置,位置编号从1到9。代码如下: 1 unsigned char ch; 2 for(ch=1;ch< 0xff;ch++)
阅读全文
摘要:关于ThreadLocal ThreadLocal相当于一个装饰器,装饰一个变量,通常将ThreadLocal实例定义为静态的。通常用来存一些多个线程都会用到的全局上下文信息,如请求信息、用户身份信心、数据库连接、当前事务等。 其作用是既使得各线程都可访问到该实例、又使各线程访问到的实际上是本线程私
阅读全文
摘要:Netty是JBOSS针对网络开发的一套应用框架,它也是在NIO的基础上发展起来的。netty基于异步的事件驱动,具有高性能、高扩展性等特性,它提供了统一的底层协议接口,使得开发者从底层的网络协议(比如 TCP/IP、UDP)中解脱出来。 TCP传输面向的是字节流,存在粘包半包问题。Netty提供了
阅读全文
摘要:java的访问控制是停留在编译层的,它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。因此,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。 一、JAVA反射 1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。 2、对于任意
阅读全文
摘要:JDK自带的工具 在JDK的bin目录下有很多命令行工具: 我们可以看到各个工具的大小基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,他们的主要功能代码是在tools类库中实现的。命令行工具的好处是:当应用
阅读全文
摘要:一、序列化的用途 序列化的主要用途有两个,一个是对象持久化,另一个是跨网络的数据交换、远程过程调用。 二、各种序列化机制比较 (跨语言、序列化大小、性能)1、(000)Java标准的序列化机制有很多优点,使用简单,可自动处理对象引用和循环引用,也可以方便的进行定制,处理版本问题等,但它也有一些重要的
阅读全文
摘要:1、彻底理解字符编码-MarchOn 2、字符编码方式及大端小端-MarchOn 3、理清Java中的编码解码转换-MarchOn 4、Unicode字符编码表 总结: 1、Unicode字符集编号规则: 2、UTF-32编码规则:四个字符,与Unicode字符集直接一一对应3、UTF-16编码规则
阅读全文
摘要:1、Java直接内存与堆内存-MarchOn 2、Java内存映射文件-MarchOn 3、Java Unsafe的使用-MarchOn 简单总结: 1、内存映射文件 读文件时候一般要两次复制:从磁盘复制到内核空间再复制到用户空间,内存映射文件避免了第二次复制,且内存分配在内核空间,应用程序访问的就
阅读全文
摘要:Java是一个安全的开发工具,它阻止开发人员犯很多低级的错误,而大部份的错误都是基于内存管理方面的。如果你想搞破坏,可以使用Unsafe这个类。这个类是属于sun.*API中的类,并且它不是J2SE中真正的一部份,因此你可能找不到任何的官方文档,更可悲的是,它也没有比较好的代码文档。 Unsafe的
阅读全文
摘要:20210819补充:线程阻塞(“阻塞”可以是指线程阻塞,也可以是指IO阻塞,两者不是一件事)的本质,详情可参阅文章 线程阻塞的本质。 深入到Linux内核源码看,阻塞与非阻塞的最终效果是线程状态的改变——阻塞就是将当前线程的状态标记为非RUNNABLE状态(例如Java scanner.nextL
阅读全文