Java编程思想
小熊123~
优秀是一种习惯
展开
-
Java编程思想_21.并发_阅读笔记
0. 顺序编程 并行编程1.并发要解决的问题: 更快的执行: 并发提升了运行在单处理器上的程序的性能 使用多线程 改进代码设计: 并发提供了一个重要的组织上的好处,你的程序设计可以极大地简化 多线程的协作2.基本的线程机制: 3种多线程: 继承Thread类: 实现Runnable接口 实现Callable接口,并使用Executor线程池管理 任务: Xxx实现Callable接口 线程池: ExecutorService pool = .原创 2020-08-17 23:07:58 · 187 阅读 · 0 评论 -
Java编程思想_20.注解_阅读笔记
1.注解: 有助于减轻编写“样板”代码的负担 更加干净易读的代码 编译器类型检查等2. 注解分类: 标准注解:3种 元注解:4种 自定义注解 三种标准注解: @Override 方法覆盖 @Deprecated 如果程序员使用了注解为它的元素,那么编译器会发出警告信息 @SuppressWarning 关闭不当的编译器警告 四种元注解:专门负责新注解的创建 @Target:注解应用的地方:ElementType.XXX METHOD 方法.原创 2020-08-16 14:37:36 · 107 阅读 · 0 评论 -
Java编程思想_19.枚举类型_阅读笔记
1.enum:关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用2.基本enum特性 调用enum的values()方法,可以遍历enum实例,返回enum实例的数组,且保持在enum中声明的顺序。 ordinary():返回int值,声明时的次序,从0开始。 name():返回声明时的名字。 enum是一个类,不能被继承。3.switch与enum一起用:switch中使用enum4.Enum并无values()方法,value.原创 2020-08-16 14:37:29 · 133 阅读 · 0 评论 -
Java编程思想_18.Java I、O系统_阅读笔记
0. I/O有大量不同方案: 各种I/O源端和想要与之通信的接收端: 文件,控制台,网络链接 以多种不同的方式他们进行通信: 顺序,随机存取,缓冲,二进制,按字符,按行,按字 nio类: 目的是为了改进性能及功能1.File类: 目录列表器: 全部列表:String[] list = f.list(); 受限列表:String[] list = f.list(new DirFilter(str)); 传入的文件过滤器类需实现文件过滤器接口FilenameFilter.原创 2020-08-16 14:37:13 · 100 阅读 · 0 评论 -
Java编程思想_17.容器深入研究_阅读笔记
1.容器分类 Map: HashMap TreeMap ConcurrentMap(并发) ConcurrentHashMap(并发) EnumMap(enum) Collection: List: ArrayList LinkedList CopyOnWriteArrayList(并发) Set: HashSet TreeSet CopyOnWriteArraySet(并发) EnumSet(enum) Queue: P.原创 2020-08-16 14:37:02 · 82 阅读 · 0 评论 -
Java编程思想_16.数组_阅读笔记
1.数组 通过整型索引值访问它们的元素 数组是一种效率最高的存储和随机访问对象引用序列的方式 长度不可变 可持有基本类型 ArrayList与其类似,但ArrayList实现了更多空间的自动分配,但是这种弹性需要开销,因而ArrayList效率比数组低好多 一般的,数组标识符其实是一个引用,指向堆中的一个真实对象,这个对象用以保存指向其他对象的引用(保存引用) 特殊的,数组可保存基本类型,此时该对象保存的是基本类型(保存基本类型) 数组的length是数组的大小,而不是实际保.原创 2020-08-16 14:36:51 · 81 阅读 · 0 评论 -
Java编程思想_15.泛型_阅读笔记
1.泛型出现背景 方法的参数类型是一个基类,则基类的所有子类都可以作为该方法的参数--->拘泥于类的单继承 方法的参数类型是一个接口,则任何实现了该接口的类都可以作为该方法的参数--->接口的多实现 方法的参数类型是某种不确定的类型,则任何类型都可以作为该方法的参数--->泛型:参数化类型2.泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且有编译器来确定类型的正确性3.泛型可表示任意类型及几种任意类型间的关系 例如:TwoTuple<A,B,C>,.原创 2020-08-16 14:36:33 · 129 阅读 · 0 评论 -
Java编程思想_14.类型信息_阅读笔记
1.运行时识别对象和类的信息的俩种方式: RTTI 反射2.多态 让代码只操纵对父类的引用,这样代码有复用性 即使通过泛化的父类引用,也能产生正确行为,这就是动态绑定,也就是多态3.类型转换前先做检查---关键字instanceof---例:x instanceof Dog 判断x是否为Dog类型的对象4.反射:运行时的类信息--->利用反射获取类的方法和字段等5.动态代理 动态代理,即代理+反射6.反射--->动态的编程风格(因为通过反射获取到是动态的)..原创 2020-08-16 14:36:24 · 78 阅读 · 0 评论 -
Java编程思想_13.字符串_阅读笔记
1.字符串操作是计算机程序设计中最常见的行为2.String不可变 String类中的每一个看起来会修改String值的方法,实际上都只是创建了一个新的String对象,原String对象并未改变 String对象具有只读特性,所以指向它的任何引用都不可能改变它的值 这种不可变会带来一定的效率和性能问题,会产生一大堆需要垃圾回收的中间对象3.StringBuilder 字符串操作性能好,替代String进行字符串操作4.容器类的toString方法 例:ArrayList.toStr.原创 2020-08-16 14:36:10 · 103 阅读 · 0 评论 -
Java编程思想_12.通过异常处理错误_阅读笔记
1.异常处理产生背景 java的基本理念:结构不佳的代码不能运行 改进的错误恢复机制是提供代码健壮性的最强有力的方式2.异常 异常可处理错误 异常可降低错误处理代码复杂度 异常将正常流程与错误分离3.基本异常 抛出异常过后,使用new在堆上创建异常对象 当前的执行路径被终止,并从当前环境中弹出对异常对象的引用 异常处理机制接管程序,并寻找一个恰当的地方来继续执行程序,这个恰当的地方就是异常处理程序,将程序从错误中恢复并继续运行4.捕获异常 try{ //要捕获异常的代码区.原创 2020-08-16 14:35:55 · 85 阅读 · 0 评论 -
Java编程思想_11.持有对象(容器)_阅读笔记
1.容器产生背景 程序总是根据运行时才知道的某些条件去创建新对象,在此之前,不知道所需对象数量和类型 未解决这个普遍问题,需要在任意时刻和任意位置创建任意数量的对象,这就不能依靠命名的引用来持有每一个对象 因为你不知道实际上需要多少这样的引用2.容器类型 Collection:存放元素 List---有序 ArrayList:查询快 LinkedList:增删快 Set----无序,无重复元素 HashSet:查询快 TreeSet:按照比较结果的升序保存对象.原创 2020-08-15 08:49:57 · 109 阅读 · 0 评论 -
Java编程思想_10.内部类_阅读笔记
1.内部类 将一个类的定义放在另一个类的定义内部,这就是内部类2.内部类的特点 代码隐藏机制,内部类将类置于其他类的内部 内部类了解外围类,并能与之通信 内部类写出的代码更加清晰3.内部类的实例化 声明:外部类名.内部类名4.链接到外部类 内部类的对象拥有外围类的所有成员的访问权5.特殊的,可以在一个方法或者任意的作用域里定义内部类--->局部内部类6.特殊的,可以隐藏内部类名--->局部内部类 例: public class Parcel{ publi.原创 2020-08-14 08:58:05 · 84 阅读 · 0 评论 -
Java编程思想_9.接口_阅读笔记
1.将接口与实现分离的更加结构化的方法 接口 内部类 2.抽象类 抽象类是普通类和接口之间的一种中庸之道 抽象类中方法仅有声明而没有方法体 抽象类和抽象方法可以使类的抽象性明确起来,而且还可以很容易的将公共方法沿着继承层次结构向上移动3.接口(Interface)----没有具体实现的一堆方法声明 接口中常量---static final(可不写) 接口中方法---public(可不写) implements关键字实现接口 动态绑定机制同样适用 接口---多实现 继承-.原创 2020-08-14 08:57:16 · 106 阅读 · 0 评论 -
Java编程思想_8.多态_阅读笔记
1.面向对象 封装: 隐藏具体实现--->将接口和接口实现分离开 继承和组合: 视为同一类型--->复用类 多态: 消除视为同一类型带来的耦合性--->改善代码的组织结构和可读性,创建可扩展的程序2.多态---增强代码的可扩展性 向上转型: 狗既可以看成狗对象,也可以看成动物对象 产生正确的行为:---动态绑定:运行时根据对象的实际类型选择性的执行父类或子类的方法 Animal dog = new Dog(); dog.f(); 父类.原创 2020-08-14 08:56:25 · 223 阅读 · 0 评论 -
Java编程思想_7.复用类_阅读笔记
1.复用代码---远远是不够的---使用类而不破坏现有程序代码(不改变原类,也不需要添加新类) 组合:将原类对象的引用置于新类中(新类中字段为原类对象的引用) 继承:新类继承原类2.代理---新类中添加原类对象的引用,并把原类对象的方法也拿过来 组合和继承的中庸之道 将一个成员对象置于所要构造的新类中(就像组合),同时在新类中暴露该成员对象的所有方法(就像继承) 不仅用类似组合的方式把你拿过来,而且用类似继承的方式把你的方法也拿过来3.结合使用组合和继承 清晰的分离和组织代码 使用时.原创 2020-08-14 08:55:39 · 92 阅读 · 0 评论 -
Java编程思想_6.访问权限控制_阅读笔记
1.访问权限控制---产生背景 使用户不要碰触那些他们不该碰触的部分---其中一个原因 使类库设计者可以在不对客户端程序员代码产生影响的前提下,更改类的内部工作方式----更重要的原因2.包:库单元,含有一组类,在一个名字空间下被组织在一起 import关键字 创建独一无二的包名---公司网址反写过来转换成小写3.public 公开的 所有类protected 继承访问权限 当前类的子类和当前包中类包 包访问权限 当前包中类private 私有 当前类4.接口和实现.原创 2020-08-14 08:54:45 · 123 阅读 · 0 评论 -
Java编程思想_4.控制执行流程_阅读笔记
1.if-else if(expression1){ statement1 }else{ statement2 } if(expression1){ statement1 }else if(expression2){ statement2 }else{ statement3 }2.while,do-while,for while:先判断再执行 while(expression){ statement } do-while:先执行一次再判断 do.原创 2020-08-14 08:52:49 · 107 阅读 · 0 评论 -
Java编程思想_3.操作符_阅读笔记
1.操作符--->用来接受一个或多个参数,生成一个新值 副作用--->有些操作符会改变操作数自身的值,例如++i 几乎所有的操作符都只能操作基本类型 "=","!=","=="可操作所有对象2.优先级 多个操作符,操作符和先后顺序共同决定了各部分计算顺序 强烈建议---用括号明确规定优先级---可读性和易维护3.赋值 将右面的值赋值给一个变量 特殊地,给对象赋值是将对象的引用赋给左面 注:不要轻易的将一个对象赋值给另一个对象,因为真正操作的是对象的引用,而非对象的值.原创 2020-08-14 08:51:38 · 101 阅读 · 0 评论 -
Java编程思想_2.一切皆对象_阅读笔记
1.用引用操纵对象 一切皆对象,但操纵的标识符实际上只是对象的一个引用 (即只是遥控器,而非电视本身)2.必须由你创建所有对象 基本类型---堆栈中 对象-------堆中3.对象的回收---java的垃圾回收机制自动处理4.类---定义某一类对象的属性和行为(字段和方法)5.编码风格 类名首字母大写,多个单词组成则各词首字母大写 驼峰模式 ...原创 2020-08-14 08:50:28 · 89 阅读 · 0 评论 -
Java编程思想_1.对象导论_阅读笔记
1.面向对象思想--->抽象过程的最好方式对象:属性,方法,唯一内存地址2.类--->具有相同属性和方法的对象集合3.对象--->服务提供者(简化设计,高内聚低耦合)4.隐藏具体实现--->访问控制 public 所有类都可访问 protected 子类可访问 包访问权限 包中类可访问 private 本类私有5.复用类 使用组合,将类的一个对象置于新类中,即“has-a” (优先使用组合等,避免使用继承)6.继承 子类与父类产生不同.原创 2020-08-14 08:49:11 · 110 阅读 · 0 评论 -
Java编程思想_前言_阅读笔记
java的核心目的程序设计其实是对复杂性的管理:待解决问题的复杂性,以及用来解决该问题的工具的复杂性。java的核心目的正是专注于克服开发与维护代码的复杂性。题外话:python比java更注重后者,所以Python是有可能替代java的。代码测试的重要性 必须要有一个内建的测试框架,并且你每次开发系统时都必须进行测试,否则没办法知道代码是否可靠。java的几点对象集合有显示和解决程序...原创 2018-04-09 17:52:35 · 190 阅读 · 0 评论