随笔分类 - Java
摘要:ArrayList底层是数组elementData,用于存放插入的数据。初始大小是0,当有数据插入时,默认大小DEFAULT_CAPACITY = 10。 /** * The array buffer into which the elements of the ArrayList are stor
阅读全文
摘要:byte存储范围,表示范围 我们知道byte代表1个字节,数据存储的范围:[0x00, 0xFF]。byte变量表示值的范围:[-128, 127]。 下面这段代码并不是输出128,而是输出-128,因为byte变量表示值的范围为[-128, 127]。128刚刚好超出上界127有1单位,溢出为-1
阅读全文
摘要:前导0计数 问题 1的前导0个数为31,对应16进制数为0x0000 0001。 2的前导0个数位30,对应16进制数为0x0000 0002。 如何计算一个int型数对应二进制数前导0的位数呢? 解决思路 轮询bit位算法 开始想到的最简单的办法是从左边最高位开始,向低位轮训,一直到遇见位1。 /
阅读全文
摘要:1 走近Java 1.1 概述 Java特点: 结构严谨、面向对象; “一次编写,到处运行”(跨平台); 相对安全的内存管理和访问机制,避免绝大部分内存泄漏和指针越界问题; 实现热点代码检测和运行时编译及优化; 有一套完善的应用程序接口,无数来自商业机构和开源社区的第三方类库帮助实现各种功能; 1.
阅读全文
摘要:什么是线程 一个程序执行多个任务,每个任务称为一个线程(Thread),是线程控制简称。 可以同时运行 > 1个线程的程序称为多线程(multithreaded)。 多线程与多进程区别 每个进程都有自己独立的一套变量,而线程之间共享数据。进程是OS分配资源的最小单位,而线程是OS调度的最小单位。 共
阅读全文
摘要:要创建一个随机数,该怎么办? java中提供了2种方式:Random类和Math.random() 它们有什么区别和联系呢? Ramdom类 特点 Random类对象是一个伪随机数生成器,使用48bit种子,随机数由线性同余生成器(linear congruential formula)生成。如果2
阅读全文
摘要:1. 将公共操作和域放在超类 例如Employee类和Student类继承自Person类,但将姓名域放在Person类,而不是2个子类。 2. 不要使用受保护的域 protected机制不能很好保护这些域,因为: 1)子类继承无限制,派生类可以在代码中直接访问protected域,破坏封装性; 2
阅读全文
摘要:Integer.toHexString(int num) 函数功能是将十进制数转化为16进制,并返回16进制String字符串。 不过,它的原理是怎样的呢? 我们今天来研究一下。 本文针对Java 8。 1. 查看下源码的函数说明 Returns a string representation of
阅读全文
摘要:List一般包含两种存储结构:顺序存储ArrayList和链式存储LinkedList。 List与数组之间如何相互转行呢? 数组转List 1. 利用遍历数组每个元素,将元素一个个加入List 最通用的方法,适合任意基本元素类型和语言。 示例: List<Integer> list = new A
阅读全文
摘要:反射简介 能够分析类能力的程序成为反射(reflective)。 反射可以用来干什么? 反射经常用于构建库或工具,主要包含以下能力: 运行时分析类的能力; 运行时查看对象,如编写一个toString查看对象属性; 实现通用的数组操作代码; 利用Method对象,类似于C/C++函数指针; Class
阅读全文
摘要:引例 当一个变量只能在一个有限集合内取值时,可以考虑使用枚举类型。比如,衣服尺寸分别编码为S、M、L、X,如果int数字1~4表示这4个编码,可能会出现一些问题:例如,衣服尺寸变量可能为0或者>4的数字,但是程序可能还不清楚含义。 对于这种情况,可以定义枚举类型,表示衣服尺寸所有可能编码 enum
阅读全文
摘要:总结 时间点用Instant(如1ms , 1ns), 时间段用Duration(如2个Instant对象所代表时间差), 本地日期用LocalDate(如2020年12月1日), 本地时间用LocalTime(如13时30分20秒), 本地日期+时间用LocalDateTime = LocalDa
阅读全文
摘要:连接到服务器 telnet手动连接 对于Windows,要想使用telnet工具,需要先启动telnet服务。 启动方法:控制面板->程序->启用或关闭Windows功能->选择并启用Telnet Client(Telnet客户端) 连接示例,命令行输入 telnet time-a.nist.gov
阅读全文
摘要:简介 内存映射文件是操作系统利用内存,来实现将一个文件或者文件的一部分“映射”到内存中的文件。内存映射文件可当做数组访问,速度比传统文件访问快。 内存映射文件有何意义? 下图是一组测试数据,测试内容是对JDK的jre/lib中37MB rt.jar计算校验和CRC32所需时间。 可以明显看到,内存映
阅读全文
摘要:概要 Files: 操作文件的工具类,Java7加入,封装了用户机器上处理文件系统所需所有功能。包含了文件创建、复制、写入、读出、删除,获取文件信息,快捷访问、遍历目录等功能。使用较File更方便,由于结合了Path/Stream等类,很擅长批量处理文件。 Path: 表示文件路径,Java7加入,
阅读全文
摘要:1. Properties属性映射 1.1 属性映射 Property Map 属性映射是一个类型特殊的映射结构,通常用于程序的特色配置选项,具有3个特点: 键与值都是字符串 表可以保存到一个文件,也可以从文件加载 使用一个默认的辅助表 Properties类实现Java属性映射。 1.2 属性映射
阅读全文
摘要:对象序列化(object serialization)是java支持的通用机制,可以将任何对象写出到输出流中,并且也可以回读。简单来说,就是可以将对象数据保存为文件,甚至可以通过网络传输,在这之后或者别的主机上恢复当前保存的数据状态。 序列化方式:Serializable接口和Externaliza
阅读全文
摘要:java中,如何利用现有数据结构对对象数组Arrays进行排序? 利用Arryas.sort()方法排序,需要结合有两种常用方法:1.使用Comparable接口;2.使用Comparator接口; 2种方法共同点 都支持泛型; 都是需要实现接口方法compareTo(); 都需要利用Arrays.
阅读全文
摘要:参考: [1]Ubuntu安装JDK7/JDK8 [2]Oracle官网安装JDK10 安装包安装 本文采用安装包安装方式 1.下载JDK安装包 JDK8下载 ,根据所使用系统选择安装包(这里选.tar.gz x64版本) 用浏览器下载完成后,位于/home/{yourUserName}/Downl
阅读全文
摘要:from http://www.cnblogs.com/JemBai/archive/2009/08/20/1550683.html java mysql 数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR L+N VARCHAR java.
阅读全文