- 博客(18)
- 资源 (4)
- 收藏
- 关注
原创 简单分析String, StringBuilder, StringBuffer
经常会看到String是否可以被继承 答案是否,因为String被final修饰。当final修饰一个类时,表示这个类不能被继承。 (插曲)此时可能会考虑到,final和static有何区别 用一段代码结果来看区别,结果显而易见。 static在类初始化是赋值,不可变,只能赋值一次。final是保证变量不可变。 public class FinalTest { public sta...
2019-04-08 16:52:55 93
原创 第十六章 数组
Arrays的一些实用方法Arrays.asList()接受任意的序列或数组作为其参数,并将其转变为List容器equals()用于比较两个数组是否相等deepEquals()用于多维数组比较是否相等fill()用于填充数组sort()用于数组排序binarySearch()用于在已经排序的数组中查找元素toString()产生数组的String表示hashCode()产生数组的散列码...
2018-07-10 09:54:29 137
原创 第十五章 泛型
仿造《Java编程思想》中链式堆栈类,实现一个链式队列1. 首先需要一个通用的结点类public class Node<T> { private T item;// 存储的数据 private Node<T> next;// 下一个节点的引用 public Node(T item) { super(); this.item = item; } pub...
2018-07-10 09:04:35 136
原创 第十四章 类型信息
.class和Class.forName() 有时候需要获得Class对象的引用,可以通过类名.class或者Class.forName("类名")来获得。两者的区别是,使用.class来创建对Class对象的引用时,不会自动地初始化该Class对象,而Class.forName()会。RTTI和反射机制 RTTI:运行时类型信息(Run-Time Type Infor...
2018-07-09 11:09:33 139
原创 第十三章 字符串
String被final修饰,是个不可变量,每次赋值,其实都是将引用指向了一个新的对象。String 字符串常量StringBuilder 字符串变量(非线程安全)StringBuffer 字符串变量(线程安全)正则表达式暂时不考虑。。。...
2018-07-06 10:20:39 82
原创 第十二章 通过异常处理错误
看的中文版的《Java编程思想》,导致很多名词很混乱,特别是被检查的异常(非运行时异常)和不受检查的异常(运行时异常),这两种异常叫法比较混乱,特意看了下英文版的叫法,checked exceptions和unchecked exceptions,这样就比较容易区分了。常见的unchecked exceptions: NullPointerException(空指针异常) ...
2018-07-05 11:44:51 101
原创 第十一章 持有对象
List, Set, MapList: 1. 可以允许重复的元素 2. 可以插入多个null元素 3. 有序 4.ArrayList, LinkedListSet: 1. 不允许重复对象 2. 只允许一个null元素 3. 无序容器(通常情况) 4. HashSet, LinkedHashSet, TreeSetMap: 1. Map不是Col...
2018-07-04 17:39:06 93
原创 第十章 内部类
内部类可以被继承,不会被覆盖。内部类主要了解明白,具体暂时不深究/** * 一个简单的内部类 */public class Outer { class Inner { private String name; public Inner(String name) { super(); this.name = name; } @Override publi...
2018-07-04 10:38:28 102
原创 第九章 接口
抽象类和接口的异同 抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是private、默认、protected、...
2018-07-04 09:49:12 73
原创 第八章 多态
多态再谈向上类型转换。Square和Circle都继承自Shape类,在main方法中,都进行了向上转换,此刻会疑惑输出结果是Shape类中的信息,还是各自自己的信息。Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。这意味着通常情况下,我们不必判定是否应该进行后期绑定——它会自动发生。由于后期绑定,所以以下代码的结果输出的都是...
2018-07-03 15:06:35 130
原创 第七章 复用类
1. 向上转型 有一个类A,AA继承A,类继承图将父类放在最顶部,子类放在下方,A a = new AA() 此处AA自动向上转成了A类型。根据类继承图可以进行理解向上的这个关系。2. final关键字 修饰类:表示该类不能被继承; 修饰方法:表示方法不能被重写; 修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。final和static final的区别st...
2018-07-03 14:32:26 95
原创 第六章 访问权限控制
此处似乎没什么好记录的权限修饰词当前类同包子类其他包public√√√√protected√√√ default√√ private√
2018-07-03 11:43:27 157
原创 第五章 初始化与清理
1. 重载overload和重写override 简单明了的说,重载发生在同一类中,方法名相同,参数不同;重写发生在子类与父类之间。两者都是多态的体现。2. 自动类型转换和强制类型转换 short型的n -> int型的m,可以直接赋值,这是自动类型转换;但是int型的m -> short型的i,却需要加上转换类型,这是强制类型转化(窄化转化)。short ...
2018-07-03 11:37:31 84
原创 第四章 控制执行流程
控制执行流程这一章似乎没有什么可以值得记录,但是由于本书时间比较早,还没有Java8,因此Java8的新特性值得在此处记录一下(Lambda表达式和Stream)。 自己定义了一个Person类,有name用来显示,age和isMale用来做判断条件,比较普通的for循环,和Lambda / stream的操作,可以发现能够减少很多代码量。不过需要注意,需要Java8...
2018-07-03 10:31:26 150
原创 第三章 操作符
1. 赋值public static void main(String[] args) { Integer i = new Integer(9); Integer j = new Integer(47); i = j; i = 27; System.out.println(i + ":" + j); Tank t1 = new Tank(); Tank t2 = new Tank(...
2018-07-02 17:57:23 120
原创 第二章 一切都是对象
1. 堆、栈、静态区 通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、"hello"和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被...
2018-07-02 16:57:02 80
原创 第一章 对象导论
工作两年多,再来读《Java编程思想》,希望能够有更深的理解,巩固好基础。如有不对,还望指正。Java面向对象的三大特征:封装、继承、多态1. 封装 所谓封装指的是隐藏对象的属性以及实现细节,仅对外提供访问方式,将不需要对外提供的内容进行隐藏,把属性隐藏对外提供访问方式。封装的优点将变化隔离便于使用提高重用性提高安全性封装的缺点将变量等使用private修饰,或者封装进方法内...
2018-07-02 16:28:29 65
原创 Linux环境下,Jenkins + Git自动构建maven项目
参考了很多文章,然后一知半解的终于搭建好了jenkins,能够实现代码提交到github之后,自动打包发布项目。(以下linux命令都是以root权限使用的,如有需要,请加上sudo)一、Git安装 0. 先看下自己是否需要安装git,不要盲目下载 git --version 如果存在,但是版本不是自己想要的,先卸载旧的git版本 yum remove git 1. 安装git需...
2018-04-26 14:55:07 2187
自定义实体类生成工具
2018-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人