java
文章平均质量分 62
huanggechao
这个作者很懒,什么都没留下…
展开
-
2018-5-3 占位符 查看异常技巧
Java中的占位符 借助MessageFormat对象来实现同样的功能,代码如下: 1 String domain = "www.ykmaiz.com"; 2 int iVisit = 0; 3 System.out.println(Me转载 2018-05-03 17:22:37 · 801 阅读 · 0 评论 -
Thinking in Java 第十二章“Java I/O系统”要点总结
https://blog.csdn.net/weixin_38967434/article/details/80084328 1.File类 (更准确的是叫做FilePath类,因为它并不指代一个File) File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹。File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取...原创 2018-09-02 17:09:00 · 247 阅读 · 0 评论 -
设计模式(慢慢总结)
1.装饰者模式(decorator design pattern) 典型的就是I/O里面。容易类爆炸。 比如BufferedInputStream in = new BufferedInputStream(InputStream inputStream):就可以把所有的InputStream加上缓冲区。 2.观察者模式 有时又被称为模型-视图(View)模式、源-收听者(Listener)...原创 2018-09-03 14:38:27 · 209 阅读 · 0 评论 -
Thinking in Java 第十三章“并发”要点总结
1.进程与线程 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部在 使 用线程时,处理器将轮流...原创 2018-09-12 17:50:34 · 91 阅读 · 0 评论 -
effective java 第二天
7.避免使用终结方法 一个对象从变得不可到达开始,到他的终结方法被执行,所花费的这段时间是任意长的。所以在不同的JVM上,程序运行的表现可能会截然不同。 不应该依赖终结方法来更新重要的持久状态。 Java语言规范不仅不保证终结方法会被及时地执行,而且根本就不保证它会被执行。不要被System.gc()方法和System.runFinalization()两个方法所诱惑,因为他们确实增加了终结...原创 2018-09-17 14:46:05 · 114 阅读 · 0 评论 -
effective java 第三天
16.复合优于继承 不当的继承会导致软件的脆弱;在包内使用继承是安全的,因为都在程序员的掌控下;而对于普通的类,进行跨越包边境的继承是危险的(继承打破了封装性,如果父类的代码改变了,子类的代码虽然不变,但是也会被改变,遭到破坏),继承那些专门为继承设计的类是安全的。 只有在存在is-a关系的时候,才使用继承。has-a就用复合。 继承会把有缺陷的api传播给子类,而复合则可以写新的api来隐...原创 2018-09-18 16:05:52 · 74 阅读 · 0 评论 -
effective java 第六天
46.for-each循环优于传统的for循环 47.了解合使用类库 48.如果需要精确的答案,避免使用float合double 使用BigDecimal、int或者long来计算 49.基本类型优于装箱基本类型 区别:1.基本类型只有值;装箱类型具有和他们的值不同的同一性 2.基本类型只有功能完备的值,而装箱类型还具有一个null值 ...原创 2018-09-23 15:14:21 · 84 阅读 · 0 评论 -
effective java 第一天
1.考虑用静态工厂方法替代构造器 eg:https://blog.csdn.net/zhangshaoqiangchn/article/details/65442234 服务接口:服务所需完成的工作 服务实现类 服务者接口:服务者需完成的工作 服务者实现类 注册API:Manager.regist() 获得服务API:服务提供者.get服务() 2.遇到多个构造器时要使用构建器...原创 2018-09-14 14:24:44 · 92 阅读 · 0 评论 -
effective java 第四天
26.优先考虑泛型 27.优先考虑泛型方法 尽量使用泛型来使程序规范。使得类型安全。 这样使用泛型也是有缺点的,用通配符可以让方法更加灵活多变。 编译器会做类型推导。 类型擦除: https://www.cnblogs.com/drizzlewithwind/p/6101081.html 28.利用有限制的通配符来提升API的灵活性 PECS:https:/...原创 2018-09-20 18:46:11 · 171 阅读 · 0 评论 -
effective java 第七天
57.只针对异常的情况才使用异常 不要在正常的控制中使用异常: 58.对可恢复的情况使用受检异常,对编程错误使用运行时异常 Java程序设计语言提供了三种异常:1.受检异常;2.运行时异常;3.错误; 59.避免不必要地使用受检的异常 60.优先使用标准异常 61.抛出与抽象相对应的异常 异常翻译: 异常链: 62.每个方法抛出的异常都要有文档 63.在...原创 2018-09-26 17:34:20 · 121 阅读 · 0 评论 -
effective java 第五天
35.注解优于命名模式: 一般命名模式表明有些程序元素需要通过某种工具进行特殊处理。 例如:JUnit测试框架要求用户一定要用test作为测试方法名称的开头。这种方法有几个严重的缺陷 首先,文字拼写错误会导致失败,但是没有任何提示。比如,把方法名称命名写成tsetSafety而不是testSafety时。JUnit不错报错,但是也不会执行测试。 其次,无法确保它们只用于相应的程序元素上。比...原创 2018-09-21 13:58:43 · 94 阅读 · 0 评论 -
java并发实践第0部分
1.线程有些时候比成为轻量级进程 lightweight process ,并且大多数线代操作系统把线程作为时序调度的基本单元,而不是进程。线程贡献所属进程的内存地址空间,所以同一进程中的所有线程访问相同的变量,并从一个堆中分配对象。 2.不安全的线程 竞争条件race condition B线程恰好在A线程的value没加一的时候读取value,这使得最后的结果是A的value和...原创 2018-09-27 13:18:17 · 80 阅读 · 0 评论 -
Java 网络通信-基本概括
一.网络通信的2种方式 1.TCP(传输控制协议)方式 TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据 2.UDP(用户数据报协议)方式 UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得 ...转载 2018-10-06 17:14:30 · 535 阅读 · 0 评论 -
Java 网络通信-网络协议
一.什么是协议 互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。 二.OSI七层协议 每层常见的物理设备 三.TCP五层模型 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层...转载 2018-10-08 15:42:01 · 1024 阅读 · 0 评论 -
Java 网络通信-HTTP
首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。 接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。 接收端的服务器在链路层...转载 2018-10-08 15:46:16 · 243 阅读 · 0 评论 -
Thinking in Java 第八章“接口和内部类”要点总结
1.接口interface里面的数据成员都是默认为static和fianl的 2.interface可以用来创建类与类之间的协议(protocol) 3.接口中的方法默认为public,因为实现它的类必须重写它它。而实现类里面的该方法必须是public的 类似的,接口中的成员也都是public的。public static final 类型的。 static的原因: ...原创 2018-08-29 15:09:12 · 428 阅读 · 0 评论 -
Thinking in Java 第十一章“对象的集合”要点总结----容器
1.容器的大致分类 Map:用来保存键值对 Collection:用来保存单一元素 : 又分为 List 、 Set 、 Queue 虚点框:接口 虚线框:抽象类 实线框:普通类 粗线框: 常用 实线 :一个类可以生成指向的那个类 虚线:接口、抽象类之间的继承 2.容器的打印不需要任何特殊操作 容器的打印方法是在 abstractCollection 和 ab...原创 2018-08-31 16:59:30 · 153 阅读 · 0 评论 -
Thinking in Java 第十一章“对象的集合”要点总结----数组
1.数组 数组的效率很高,但是其大小在创建时就会固定。 因为数组有数组下标也就是序号,所以查询非常方便,只要你指定要哪个下标号码的值就行。 增删效率低也是因为需要维护这个序号。 链表不维护序号,所以增删直接操作,将前面指向他后面一个操作就完成了。但查询效率就低啊,得全链表扫描。 数组只能存储某一特定类型的变量,所以编译时就会做类型检查,比较安全。 C++不会对越界检查,而java中越界是一...原创 2018-08-31 15:42:52 · 82 阅读 · 0 评论 -
2018-4-25 IO问题
深入理解Java中的IO 引言: 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 < Thinking in Java > 本文的目录视图如下: Java IO概要 a.Java IO中常用的类 b.Java流类的类结构图 1.流的概念和作用 2.Java IO所采用的模型 : 3.I...转载 2018-04-25 19:27:55 · 546 阅读 · 0 评论 -
2018-4-26 javascript Writer的print和write ==和equals
1.深入理解JavaScript运行机制前言本文是写作在给团队新人培训之际,所以其实本文的受众是对JavaScript的运行机制不了解或了解起来有困难的小伙伴。也就是说,其实真正的原理和本文阐述的并不完全符合,就如中学课本和大学课本一样,大学老师会告诉你高中的一些东西是在某些理想情况下得到的结论,本文同理。本文的目的是希望大家阅读之后能对JavaScript的运行机制有一个比较直观比较快的认识,但转载 2018-04-26 12:00:23 · 128 阅读 · 0 评论 -
2018-5-5 target的使用
target _blank 在新窗口中打开。 _self 默认。在相同的框架中打开。 _parent 在父框架集中打开。 _top 在整个窗口中打开。 framename 在指定的框架中打开。转载 2018-05-05 20:18:38 · 98 阅读 · 0 评论 -
2018-5-6 java中的集合
java中的集合 其中淡绿色的表示接口,红色的表示我们经常使用的类。 1:基本概念 Java容器类类库的用途是保存对象,可以将其分为2个概念。 1.1:Collection 一个独立元素的序列,这些元素都服从一条或多条规则。其中List必须按照插入的顺序保存元素、Set不能有重复的元素、Queue按照排队规则来确定对象的产生顺序(通常也是和插入顺序相同)转载 2018-05-06 12:38:57 · 133 阅读 · 0 评论 -
2018-5-8 对象构造过程 代码块 classloader(看不懂) 绝对路径与相对路径
对象构造过程 1,加载.class文件进方法区,并进行空间分配。 2,如果有静态变量,先默认初始化,显示初始化。 3,如果有静态代码块,要执行,仅一次。 4,通过new在堆内存中开辟空间,并明确首地址。 5,对对象中的属性进行默认初始化。 6,调用对应的构造函数进行初始化。 7,构造函数内部。 7.1 调用父类构造函数super(); 7.2 成员变量的显示初始化。 7.3转载 2018-05-08 14:13:50 · 484 阅读 · 0 评论 -
2018-5-8 引用传递
引用传递 首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。 更何况,要想知道Java到底是传值还是传引用,起码你要先知道传值和传引用的准确含义吧?可是如果你已经知道了这两个名字的准确含义,那么你自己就能判断Java到底是传值还是传引用。 这就转载 2018-05-08 17:24:58 · 93 阅读 · 0 评论 -
Thinking in Java 第一章“对象引论”要点总结
1.Java的根基 2.每个对象都是“服务提供者”(Service Provider) 3.后期绑定“late binding” https://www.cnblogs.com/jstarseven/articles/4631586.html (静态)前期绑定: 1.private:private方法不能被继承,所以直接和类型绑定‘ ...原创 2018-08-26 12:04:00 · 121 阅读 · 0 评论 -
Thinking in Java 第二章“一切都是对象”要点总结
1.引用:遥控器和电视机。带着遥控器就可以操作电视机,不用一直带着电视机这个物品。有遥控器也可能没有电视机。 2.存储 基本变量是存在于堆栈中,而不是堆中 3.创建一个数组对象就是创建了一个引用数组。自动初始化未null(没有指向任何对象)。 4.作用域 作用域外,引用s会消失,但是new出来的对象并不会小时。java的垃圾回收机制会保证内存不会溢出。 5.域(field)和...原创 2018-08-26 13:21:59 · 96 阅读 · 0 评论 -
Thinking in Java 第四章“初始化与清楚”要点总结
1.构造器 2.重载 3.缺省构造器(无参构造器) 4.this关键字 编译器会在调用某方法的时候悄悄把调用对象的引用作为第一个参数传入方法中,而this关键字就可以代表这个引用对象。 在构造器中,this可以用于初始化。 可以用this来代表构造器 5.再谈static方法 static方法其实就是没有this的方法,因为他不涉及对象。这其实不是面向对象的。 6.finaliz...原创 2018-08-26 15:05:20 · 116 阅读 · 0 评论 -
Thinking in Java 第五章“隐藏具体实现”要点总结
1.一个.java文件只允许存在一个public类 2.public、private、protected以及省略 public:全部都可以访问 private:只有类里面的方法可以访问 protected:继承父类的子类可以访问父类里的protected成员 缺省:只有在同一个包中的类可以省略修饰 3.private在构造器上的应用 利用在构造器前加上private来限制用户...原创 2018-08-26 20:04:57 · 137 阅读 · 0 评论 -
Thinking in Java 第六章“复用类”要点总结
1。组合语法composition和继承inheritance 不声明继承就默认继承Object类。与前面的单根继承对应。 成员缺省的访问权限是package。 2.在同一个java文件里面,可以存在多个main函数(在不同的类中),但是不能出现多个public类。 这样让测试单元更加清晰、容易。 main函数还可以互相调用:因为main函数是个public static void ma...原创 2018-08-27 13:02:51 · 83 阅读 · 0 评论 -
Thinking in Java 第七章“多态”要点总结
1.从同一基类导出的多种类型被视作同一类型进行处理,所以同一份代码就可以毫无差别地运用在这些不同类型上 2. 对于upcasting,编译器并不知道导出类的具体类型是什么。 方法绑定:将方法和某一个主体关联起来的过程 前期绑定:由编译器和链接器做到,在程序执行前进行绑定(C语言) 后期绑定(动态绑定dynamic binding/ 运行时绑定run-time binding):编译器任然...原创 2018-08-27 16:14:43 · 122 阅读 · 0 评论 -
Thinking in Java 第九章“异常与错误处理”要点总结
1.异常处理机制的好处 2.Throwable中定义的printStackTrace()方法 3.异常的默认输出方法再Throwable中 getMessage()方法有点类似与toString()方法。 4.异常说明 把可能发生的异常throws在方法后面 5.作弊 6.重新抛出异常 fillInStackTrace()更新,可以让输出不是原来异常抛出...原创 2018-08-30 18:02:07 · 133 阅读 · 0 评论 -
Thinking in Java 第十章“类型检查”要点总结
1.RTTI (runtime type indentification) 当只有一个指向对象的基类的引用时,RTTI可以知道它的确切的类型。 传统RTTI和反射。 2.Class对象 class对象包含类相关的所有信息,他可以用来创建类的常规对象。 每当编译了一个新类,就会产生一个class对象(保存在同名的class文件中)。当我们想生成某个类的对象时,JVM就会检查这个类的clas...原创 2018-08-31 13:46:31 · 268 阅读 · 0 评论 -
饭饭泛博客学习
原子操作 AtomicInteger和AtomicLong、AtomicBoolean、AtomicReference等类存储相应的值 AtomicIntegerFieldUpdater<T>/AtomicLongFieldUpdater<T>/AtomicReferenceFieldUpdater<T,V>是基于反射的原子更新字段的值 相应的api...转载 2018-09-29 17:01:29 · 143 阅读 · 0 评论