![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
书籍学习-Thinking in java
个人计划第一部分基础学习
java编程思想学习,主要是充实基础
PS:啃EffectiveJava的时候,深感java基础不结实,所以加一本书的学习
沙丁鱼flat
这个作者很懒,什么都没留下…
展开
-
Thinking in java学习笔记21:第二十一章(并发-完结)
并发下面的一章是仿真,也就是模拟真实场景的一些案例,这里我就不说了 继续再另外一章 9.性能调优原创 2020-03-13 10:35:31 · 539 阅读 · 0 评论 -
Thinking in java学习笔记20:第二十一章(并发-下)
继续上一章内容 7.新类库中的构件 7.1 CountDownLatch原创 2020-03-11 13:02:36 · 156 阅读 · 0 评论 -
Thinking in java学习笔记19:第二十一章(并发-中)
上一个笔记(并发-上)的内容:https://blog.csdn.net/asdfghj253/article/details/104050967 3.共享受限资源 3.1 不正确地访问资源 这节举了个例子来说明,我总结一下。那就是资源的原子性和可视性。 这里将资源设置了状态,并编写方法来提供资源是否可用的可观性,当状态为不可用,那么其他线程无法调用,等一线程结束状态改回可用,...原创 2020-03-09 10:19:03 · 134 阅读 · 0 评论 -
Thinking in java学习笔记18:第二十一章(并发-上)
对于并发,书中花了很长的篇幅来讲,而我需要重点学习的也是并发,所以这里分多个笔记来记录。 1.并发的多面性 用并发的用途大体分为:性能 和 设计可管理性 两种。 实现并发最直接的方法:在操作系统级别使用进程。 多任务操作系统可以通过周期性地将CPU从一个进程切换到另一个进程,来实现同时运行多个进程(程序)。 编写多线程的基本困难是协调不同线程驱动的任务之间对这些资源的使用,以使这些资源不...原创 2020-03-05 15:17:25 · 219 阅读 · 0 评论 -
Thinking in java学习笔记17:第二十章(注解)
1.注解的定义 注解又被称为元数据 java内置的3中注解 @Override:标记重写父类方法 @Deprecated:标记方法过时 @SurpressWarnings:忽略编译器警告 简单介绍在我另一篇笔记有写: https://blog.csdn.net/asdfghj253/article/details/103503302 2.编写注解处理器 注解处理器就是用来读取注...原创 2020-01-20 13:57:34 · 154 阅读 · 0 评论 -
Thinking in java学习笔记16:第十九章(枚举类型)
1.基本enum特性 1.1首先介绍了3个方法 values():获取enum实例的数组 ordinal():获取enum实例在声明时的次序 name() :获取enum实例声明时的名称 public class EnumTest { public static void main(String[] args){ sardine[] sardineList= s...原创 2020-01-19 15:21:18 · 129 阅读 · 0 评论 -
Thinking in java学习笔记15:第十八章(java I/O系统)
1.File类 File(文件)类它不但能代表一个特定文件的名称,它还能代表一个目录下的一组文件的名称。 Filed对象.list()方法:可以获得File对象包含的全部列表。 产生目录是用是Filed对象.mkdirs()方法生成目录 public class test { //mkdirs()创建目录 public static void main(String[] args) ...原创 2020-01-19 10:23:33 · 207 阅读 · 0 评论 -
Thinking in java学习笔记14:第十七章(容器深入研究)
1.填充容器 填充容器也可以使用Collection.fill(list,对象),也是复制同一对象引用来填充整个容器,且只对List对象有用。 我们还可以使用了Collections.nCopies(int n, T o)方法进行填充 (n--在返回列表中元素的个数。o--在返回列表中反复出现的元素。) public class test0 { public static v...原创 2020-01-17 14:00:38 · 189 阅读 · 0 评论 -
Thinking in java学习笔记13:第十六章(数组)
1.数组(Array)的性质 1.1 数组是线性序列的 1.2 数组是一种效率最高的存储和访问对象引用序列的方式。 1.3 数组的数组对象大小是被固定的 1.4 数组实质上保存的是引用(指向在堆中创建的一个真实对象) 2.返回一个数组 public class ArrayTest { public static void main(String[] args) { ...原创 2020-01-15 11:09:22 · 127 阅读 · 0 评论 -
Thinking in java学习笔记12:第十四章(类型信息)、第十五章(泛型)
第十四章-类型信息 运行时类型信息使得可以再运行时发现和使用类型信息。 这里书中写了RTTI,RTTI是什么?这其实是作者的一个误会,RTTI是C++里面的RTTI(Run-time Type Identification),运行时获取类型信息。而java中更适合的表示是反射,可以这么说,java的反射是C发展到java后的结果。 对于反射我其实已经有笔记了,而且我对这张内容表示有...原创 2020-01-14 16:02:35 · 130 阅读 · 0 评论 -
Thinking in java学习笔记11:第十三章(字符串)
字符串可以说无论新手老手,都会用到,而这一章就是讲字符串(String)的一些操作 1.不可变String 书中有一句话,我感觉需要重点标记一下,因为这句话很重要: String对象是不可变的。 String类中每个会修改String值的方法实际上都是创建一个新的String对象,用新对象来保存修改后的值,而原对象是不变的。 比如:String a="沙丁鱼flat"; a="沙...原创 2020-01-13 09:45:08 · 160 阅读 · 0 评论 -
Thinking in java学习笔记10:第十二章(通过异常处理错误)
书中标了一句话:java的基本理念是“结构不佳的代码不能运行” 1.基本异常 异常情形:阻止当前方法或作用域继续执行的问题。 例:throw new NullPointerException(); 对于异常参数,标准的异常类都有两个构造器,一种是默认无参构造器,一种是接收字符串作为参数,以便放入相关信息的构造器 例:throw new NullPointerException("t=...原创 2020-01-10 13:52:06 · 139 阅读 · 0 评论 -
Thinking in java学习笔记9:第十一章(持有对象)
对于第十章的内部类,因为之前的笔记已经学习过内部类了,所以这里就不记笔记了。 内部类是什么? 将一个类的定义放在另一个类的定义内部,就是内部类 持有对象:就是把对象存储到容器中得以持有. 所以这章主要讲容器类,容器类的基本类型就是List、Set、Queue、Map等集合类 1.泛型和类型安全的容器 这里介绍了ArrayList容器。 ArrayList.add(...原创 2020-01-07 15:05:59 · 157 阅读 · 0 评论 -
Thinking in java学习笔记8:第九章(接口)
1.抽象类和抽象方法 抽象类是介于普通类与接口之间的。 java提供一个叫做抽象方法的机制,这个抽象方法,使用abstract关键字,仅有声明没有方法体。 例:abstract void xx(); 而包含这种抽象方法的类叫抽象类。(因为类中有抽象方法,则该类也必须被限定为抽象的。) public class abstractTest { public static voi...原创 2020-01-06 15:14:13 · 260 阅读 · 0 评论 -
Thinking in java学习笔记7:第八章(多态)
多态是什么? 就是一个对象有多种形态 比如迪迦奥特曼可以通过改变颜色来切换形态,蓝色防御型,红色攻击型,红蓝都有是平衡型 1.多态的向上转型 在上一章也讲了,在向上转型后(子类转成父类),子类的特有方法是无法使用的。 不过这边讲一下特例,子类中如果有覆盖(重写或重名)的方法,那么向上转型后调用父类的同名方法时,它执行的是子类的方法。 public class test { pu...原创 2020-01-04 13:36:20 · 156 阅读 · 0 评论 -
Thinking in java学习笔记6:第七章(复用-类)
1.组合和继承 这里的复用类表示的是复用(类的代码),这边主要有两种表现形式:组合和继承 组合就是在新类中创建原类的对象,has-a关系。比如原有类为A,则 private A a; 继承就是新类直接继承原类作为父类,is-a关系。比如:extends A 不过个人感觉继承局限性较大(因为java是单继承性质的),破坏封装,正常情况下,还是优先使用组合来进行类的复用合适点。 ...原创 2020-01-03 14:39:55 · 124 阅读 · 0 评论 -
Thinking in java学习笔记5:第六章(访问权限控制)
1.包:库单元 在了解访问权限控制之前,我们需要先理解其结构。 类库中有很多包,包(package)中有很多类(.class文件) 我们就是加入类库,通过引用类库中的包,调用包中的类来进行使用的。 使用import关键字来引用包。 注意点:创建包时隐含地指定了目录结构,这个包必须位于其名称所指定的目录中,该目录必须以CLASSPATH开始的目录开始。 2.java访问权限修饰符 ...原创 2020-01-03 10:00:31 · 167 阅读 · 0 评论 -
Thinking in java学习笔记4:第五章(初始化与清理)
1.用构造器确保初始化 无参构造器和有参构造器的定义不说了,说下我使用时忽略的知识点 构造器是一种特殊类型的方法,它没有返回值。(new表达式确实返回对新建对象的引用,但构造器本身无返回值)。 2.方法重载 区分重载的方式有多种,这边介绍几种: 1.根据重载方法的参数顺序来区分,比如(int,String)和(String,int) 2.根据重载方法的基本类型自动区分,...原创 2019-12-26 11:14:00 · 113 阅读 · 0 评论 -
Thinking in java学习笔记3:第四章(控制执行流程)
1.迭代 定义:就是重复执行语句,直到有个条件判断达到,跳出循环重复的轮回。 书中将while、do-while、for用于控制循环的语句都划分为迭代语句。 2.foreach 和 for foreach和for都是可以用来作为循环遍历的语法。 这里简要说明两者的区别: 1.for循环在第一次迭代前需要进行初始化,随后进行条件测试。 2.foreach语法表示不必创建int变量...原创 2019-12-18 10:59:19 · 95 阅读 · 0 评论 -
Thinking in java学习笔记2:第三章(操作符)
1.直接常量 直接常量:使编译器更有效地知道使用的是什么常量。 简单定义可能理解不了,但是一举例就能明白了: 写在后缀字符位置的: Long a=2L; Longa=2l; --大小写L代表long float a=2.0F; float a=2.0f; --大小写F代表float double a=2.2D; double a=2.2d --大...原创 2019-12-17 17:30:41 · 283 阅读 · 0 评论 -
Thinking in java学习笔记1:第二章(一切都是对象)
1.用引用操纵对象 操纵的标识符实际上是对象的一个“引用”。 创建一个String引用:String s; s只是引用,不是对象。 2.创建新对象 创建新对象的方式就是使用new操作符:String s=new String("沙丁鱼flat"); 2.1 内存存储位置 这是我自己总结做的表格: 存储地方 速度 特点 位置 寄存器 最快的...原创 2019-12-16 10:25:45 · 131 阅读 · 0 评论