
Java
文章平均质量分 52
Ethan-Walker
这个作者很懒,什么都没留下…
展开
-
Java同一个文件包含多个类 注意事项
1、如果类A被声明为公共的(public),那么必须将类A保存在名为A.java的文件中;2、反之,在一个文件中最多包含一个顶级的公共类,并且该公共类的名字与文件名相同。比如文件A.java中,允许定义一个或多个类,但最多允许一个顶级的公共类,此类名为A。此处强调的顶级的意思是,允许非顶级的公共类存在,如内部公共类等。在java里,文件名与类名之间的关系,有下面这些约束:1.Java保存原创 2016-09-18 23:22:14 · 3307 阅读 · 0 评论 -
Java书籍
原文地址,转载只为存下以备之后参考本书架主要针对Java后端开发与架构。更新记录:4.0版把第五部份-具体技术的书整块拿掉了。《TCP/IP详解 卷1:协议》出到了第二版,增加《SRE:Google运维解密》,《Java8 实战》。更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏转载 2017-03-14 22:51:45 · 324 阅读 · 0 评论 -
Properties 读取/存储文件保持键值对顺序不变
保持顺序的 Java Properties 类原文地址:http://gflei.iteye.com/blog/1851875Java 的 Properties 加载属性文件后是无法保证输出的顺序与文件中一致的,因为 Properties 是继承自 Hashtable 的, key/value 都是直接存在 Hashtable 中的,而 Hashtable 是不保证进出顺序的。总有时候...转载 2016-11-02 20:38:43 · 1441 阅读 · 0 评论 -
IO流总结
1: 字节流 InputStream(抽象类) * int read():一次读取一个字节 * int read(byte[] bys):一次读取一个字节数组 FileInputStream(String path) /(File file) BufferedInputStream原创 2016-10-14 14:14:11 · 229 阅读 · 0 评论 -
最常用IO流
1:读取/写入文件 读取: BufferedReader br=new BufferedReader(new FileReader("a.txt")); 写入: 1)从文件的末尾开始写(追加到源文件内容中): FileOutputStream stream = new FileOutputStream("原创 2016-10-14 14:12:35 · 305 阅读 · 0 评论 -
float数据在内存中的存储形式
float类型数字在计算机中用4个字节存储。遵循IEEE-754格式标准: 一个浮点数有2部分组成:底数m和指数e底数部分 使用二进制数来表示此浮点数的实际值指数部分 占用8bit的二进制数,可表示数值范围为0-255但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。 所以,float类型的指数可从-126到128底数原创 2016-09-02 16:58:47 · 440 阅读 · 0 评论 -
复杂对象调用执行顺序
class Meal { Meal() { System.out.println("Meal()"); // 5 }}class Lunch extends Meal { private static Demo4 demo4 = new Demo4(); //1 private Demo demo = new Demo(); // 6...原创 2018-06-18 10:00:00 · 180 阅读 · 0 评论 -
多态适用性
多态只适用于普通方法,不适用于 private / final 修饰的方法(因为这类方法不能被子类重写),也不适用于域(成员变量) 或静态方法1. 多态不适用于域(成员变量)public class FieldAccess { public static void main(String[] args) { Super sup = new Sub(); ...原创 2018-06-18 08:57:00 · 374 阅读 · 0 评论 -
序列化和反序列化
序列化:将堆内存中的Java对象,转换成字节序列,使其支持持久化存储(存储到磁盘)和网络传输反序列化:将字节序列恢复成成Java 对象(需要Java 对象的 .class文件)1. 实现 Serializable 接口要想实现序列化,必须实现 Serializable接口public class Student implements Serializable { pri...原创 2018-05-10 21:26:00 · 190 阅读 · 0 评论 -
为什么不要用 StringBuffer 和 Vector
原文链接很多人在回答新手提问的时候会说,StringBuilder 是非同步的,所以快一些,StringBuffer是同步(线程安全)的,所以慢一些。从技术上说这句话是没有错的,但是为什么多线程的时候仍然用 StringBuilder,不建议用StringBuffer(StringBuffer 建议永远不要使用)?简单的说,StringBuffer的“线程安全”在大多数时候增加了大量不...原创 2018-04-25 23:00:00 · 357 阅读 · 0 评论 -
链表Java实现
获取链表中间结点 获取链表倒数第 k 个节点package linkedlist;/** * Created by lenovo on 2018/4/2. */public class MyLinkedList<T> { private Node<T> header; private int size; public MyLi...原创 2018-04-23 03:58:00 · 167 阅读 · 0 评论 -
利用IO流中File类 批量修改文件名
将上述文件改名为 有序且具有核心关键字的文件名<span style="font-size:18px;">package cn.itcast_05;import java.io.File;import java.io.FilenameFilter;public class FileNameChangeDemo { public static void main(Stri...原创 2016-10-06 11:38:38 · 1734 阅读 · 0 评论 -
Collections 对List排序
通过 Collections 中的 sort() 方法对 List 进行排序-------------------------Collections 中的sort方法:tags 1:static > void sort(List list) 根据元素的自然顺序 对指定列表按升序进行排序。 tags 2:static void sort(List list, Com原创 2016-10-04 17:20:27 · 428 阅读 · 0 评论 -
Java中内存问题总结一(栈、堆、常量池及String类在内存中的实现)
原文地址 在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。------最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 堆栈转载 2016-09-19 23:21:39 · 550 阅读 · 0 评论 -
Java中内存问题总结二(栈、堆、常量池、String类在内存中实现 )
一.栈(stack)与堆(heap)都是Java用来在RAM中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。二.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共 享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事转载 2016-09-19 23:40:04 · 328 阅读 · 0 评论 -
String类在内存中实现原理详解
(1)== 比较引用类型比较的是地址值是否相同equals:比较引用类型默认也是比较地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同。(2)区分下面两种语句在内存中的实现:String s=new String("abcde");String s2="abcde";System.out.println(s==s2);原创 2016-09-20 00:12:16 · 3021 阅读 · 0 评论 -
Java中参数传递问题总结
1.问题说明 在C++中,函数调用时有传值调用和传址调用两种方式,但在Java中只有传值调用一种方式。Java中的方法参数为那几种基本数据类型的情况跟C++中一样,传入的只是变量的拷贝。而当参数类型为类对象时,则有可能会误以为是传址调用。 在Java的方法调用中,方法中的参数是以传值的形式进行的,不管它是什么数据类型。如果是基本数据类型,则就是传入该值的一个拷贝;如原创 2016-09-25 21:14:07 · 400 阅读 · 0 评论 -
String类和int之间的互相转换
/* * int 到String的转换 */ // 方式一:利用String类的静态函数valueof 将所有其他类型的数据直接转换成字符串 int i = 100; String s = String.valueOf(i); System.out.println(s); System.out.println(); // 方式二:利用Integer类的静态原创 2016-09-26 00:24:46 · 404 阅读 · 0 评论 -
Java学习笔记之Integer自动拆装箱、数据常量池
1.自动拆箱和自动装箱JDK5的新特性 自动装箱:把基本类型转换为包装类类型 自动拆箱:把包装类类型转换为基本类型注意一个小问题: 在使用时,Integer x = null;代码就会出现NullPointerException。 建议先判断是否为null,然后再使用。public class IntegerDemo { public static void main原创 2016-09-27 16:20:15 · 356 阅读 · 0 评论 -
获取给定区间的随机数(整型)
import java.util.Scanner;/* * 需求:请设计一个方法,可以实现获取任意范围内的随机数。 */public class MathDemo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入sta原创 2016-09-30 11:31:38 · 343 阅读 · 0 评论 -
匿名内部类详解
在Java提高篇-----详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客。在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类、匿名内部类使用的形参为何要为final。 一、使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪。创建格式如下:转载 2016-10-03 21:54:24 · 217 阅读 · 0 评论 -
HashSet 详解
HashSet 总结HashSet 特点无序:取出和存入的顺序不一致。唯一:集合中不存在相同的元素注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序A:底层数据结构是哈希表(是一个元素为链表的数组)B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相原创 2016-10-04 00:49:47 · 394 阅读 · 0 评论 -
TreeSet用法详解
TreeSet 总结特点: 无序(指的时存储顺序和取出顺序不同),但是内部其实有集合本身的排序方式 唯一(无重复元素)A:底层数据结构是红黑树(是一个自平衡的二叉树)B:保证元素的排序方式 a:自然排序(元素具备比较性) 1)让元素所属的类实现Comparable接口 2) 在类中重写Comparable的抽原创 2016-10-04 02:07:51 · 2456 阅读 · 0 评论 -
Poi 读取 Excel 文件
下载poi jar包 导入工具类ExcelParseUtilspackage com.example.utils;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;impor...原创 2017-09-16 13:35:00 · 123 阅读 · 0 评论