一.只针对异常的情况才使用异常 1.类具有状态相关的方法时,可采用状态测试方法和可识别的返回值两个策略. 二.对可恢复的情况使用受检异常,对编程错误使用运行时异常 1.期望调用者能够适当恢复的情况,应该使用受检的异常. 2.用运行时异常来表明编程错误. 三.编码不必要地使用受检异常 1.使用受检异常的两个条件: a.正确地使用API并不能阻止这种异常条件的发生 b.异常发生后,使用API的程序员可以立即采取有用的动作. 四.优先使用标准的异常 1.IllegalArgumentException…
head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍Java的基础知识,从对象的基本概念.变量.方法,到函数库,集成与多态,静态,再到GUI,序列化,网络,数据结构,最后介绍发布和远程调用. 5. 纲要 Java的基本介绍-第1章 对象的基本介绍(变量与方法)-第2-5章 函数库-第6章 对象的深入-继承.多态.构造函数-第7-9章 静态的变量或方法-…
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 数据报基本知识 2. 服务器端和客户端程序实例 1. 数据报基本知识 之前套接字中例子使用的都是“传输控制协议”(TCP),亦称作“基于数据流的套接字”.根据该协议的设计宗旨,它具有高度的可靠性,而且能保证数据顺利抵达目的地.换言之,它允许重传那些由于各种原因半路“走失”的数据.而且收到字节的顺序与它们发出来时是一样…
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 套接字基本知识 2. 交互过程 3. 一个简单的服务器和客户机程序 4. 服务多个客户 有关套接字的详细介绍,可以看下<think in java>15.2章节. 1. 套接字基本知识 “套接字”或者“插座”(Socket)也是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”.针对一个特定的连接,每台机器上…
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 在Think in Java中有这么一段话“对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int.只有右侧的5个低位才会有用.这样可防止我们在一个int数里移动不切实际的位数.若对一个long值进行处理,最后得到的结果也是long.此时只会用到右侧的6个低位,防止移动超过long值里现成…
Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触及他们不该触及的部分[2]允许库设计者/类创造者改变类的内部工作方式而不用担心会影响客户端程序员 [Java访问指定词,access specifier]public private protected [组合,composition][聚合,aggregation][has-a,拥有关系] [继承]==…
Java逍遥游记读书笔记 前言 必须先来一句,这是入门级别,高手勿喷~ 写Android的时候总有一些语句不是很理解,其实大部分是Java的内容,所以想系统的学下Java. 这本书——<Java逍遥游记>是在图书馆偶然看到的,被横放在书架上,看来是被人翻过直接丢那里了,索性拿来看一看. 很基础的一本书,废话很多,比如孙悟空想学编程什么什么的,但可以理解作者的一片苦心.既然如此水,那就把它借回来想快速扫一下以增加成就感,用一种查漏补缺的态度,看到哪里不会就记下来,最终目标就是这本书就作废了,对我…
这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向对象是以对象为中心,先有类,得到对象,通过对象之间相互通信实现功能,面向过程是先有算法,后有数据结构, 而面向对象是先有数据结构,然后再有算法. 然后就是一些重要的: main方法是静态的. Public static void main(String[] args) 源代码的文件名必须与公有类的名…
本篇读书笔记主要参考自<深入解析Windows操作系统>和<软件调试>这两本书. IDT是处理异常,实现操作系统与CPU的交互的关口. 系统在初始化阶段会去填写这个结构. IDT的每一个表项都成为门描述符,因为IDT的功能就像大门一样,从一个空间跳到另一个空间去执行. IDT中包含三种门描述符 任务门描述符:用于任务切换 中断门描述符:用于描述中断处理例程 陷阱们描述符:用于描述异常处理例程 CPU如何使用IDT cpu首先根据IDTR找到IDT,再利用向量号码找到门描述符.再去判…
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. Background 看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了. 做这个笔记的目的主要是为了个人学习, 把一本书读薄, 也留下以后可以查阅翻阅的资料. 写博客这么多年, 我觉得有一个很大的好处是, 有时候会有一个…
1.import package com.yfs.javase; import java.util.Scanner; //import java.lang.String;//默认导入 public class Demo1 { public static void main(String[] args) { String s = new String("abc");//java.lang.String String s1 = "abc"; System.out.pri…
异常不同于错误,它是程序运行时产生的未知问题. 如果把程序比喻成一辆汽车,那么汽车开着开着突然前面出现了一个大石头挡住了路,这就叫异常. 那么出现了这个异常我们需要去处理,比如打电话给公路管理局,让它们搬走石头. 如果是汽车的发动机坏了,这叫错误. 即使程序本身没有问题,也会因为各种因素产生异常. java秉承面向对象的思想,将异常也以类和对象的形式存在. 一.异常类的结构 异常和错误都继承于Throwable, 在Exception和Error下面还有许多具体的子类,这个可以自行查阅文档. 这…
Chapter 9 Exceptions Item 57: Use exceptions only for exceptional conditions 这条item的意思就是,千万不要用exception来控制control flow的终止,比如: // Horrible abuse of exceptions. Don't ever do this! try { int i = 0; while(true) range[i++].climb(); } catch(ArrayIndexOutO…
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.JVM.分布式之类的.在今年面试的时候深受打击,到处都是问分布式.集群的?难道现在工作两三年的都这么牛逼了?都在搞分布式.集群之类的? 2016书单如下: 1.深入理解Java虚拟机:JVM高级特性与最佳实践---(已看,预计今年看三遍) 2.Oracle查询优化改写技巧与案例---(已看) 3.Ef…
第0章:学习方法建议 该如何学习Java? 1.慢慢来.理解的越多,就越不需要死记硬背.时常停下来思考. 2.勤作笔记,勤做习题. 3.动手编写程序并执行,把代码改到出错为止. 需要哪些环境和工具? 1.文本编辑器 2.Java API 文档 3.安装 JDK5 以上 4.配置Java环境变量,让java/javac知道去哪里寻找Java/bin中的执行文件. 5.UML图例与规则 第1章:进入Java的世界 Java有哪些特点? 面向对象.内存管理.跨平台write once, run any…
一.考虑用静态工厂方法代替构造器 这里的静态工厂方法是指类中使用public static 修饰的方法,和设计模式的工厂方法模式没有任何关系.相对于使用共有的构造器来创建对象,静态工厂方法有几大优势: 1.静态工厂方法有名称:通过有意义的静态工厂方法名称可以很好的表达工厂方法的作用,易于区别功能相似的多个静态工厂方法. 2.静态工厂方法可以有更复杂的生产对象逻辑,不仅仅是新建一个对象:既可以新建一个对象,也可以使用缓存的对象. 3.静态工厂方法可以返回原返回类型的任何子类型的对象:由于接口不能有…
学完java有一段时间了,一直没有做对应的总结,总认为有一种缺憾.从这篇博客開始,将自己平时的学习笔记进行总结归纳,分享给大家. 这篇博客主要简单的介绍一下java的基础知识,基本的目的是扫盲.原来仅仅是听说过java,如今自己真正開始学习了,看完了第一集视频之后,问自己,你知道java是什么吗?问完之后才发现一无所知,上完查一查,简单了解一下,给自己扫盲. 介绍 知道java是一种可跨平台应用软件的面向对象的程序设计语言,就能够了. 组成 Java由四方面组成:java编程语言,java类文件…
用引用操纵对象 Java里一切都被视为对象,通过操纵对象的一个"引用"来操纵对象. 例如, 可以将遥控器视为引用,电视机视为对象. 创建一个引用,不一定需要有一个对象与之关联,但此时使用该引用会出错. 遥控器可以独立存在,但是没有电视机,使用遥控器没有意义. 必须由你创建所有对象 存储数据或代码的地方 寄存器:位于CPU内部,速度最快.JAVA语言无法直接控制寄存器. 堆栈:位于DRAM中,通过栈顶指针来辨别内存是否被使用.创建程序时,JAVA系统必须知道存储在堆栈内所有项的确切生命周…
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 异常:Java程序在运行过程中出现的错误 * * 类 Throwable:Java 语言中所有错误或异常的超类. * 只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出. * 类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型. * * 类 E…
捕获异常 使用try 和catch关键字可以捕获异常.try/catch 代码块放在异常可能发生的地方. try/catch 代码块中的代码称为保护代码 ,使用try/catch的语法如下: try { //程序代码 } catch(ExceptionName e1) { //Catch块 } Catch语句包含要捕获异常类型的声明,当保护代码块中发生一个异常时,try后面的catch块就会被检查. 如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样.…
再论向上转型 在某些方法中,仅接收基类作为参数,而不是特殊的导出类,会使得程序更容易扩展. 转机 方法调用绑定 前期绑定(编译期绑定):在编译期将一个方法调用和方法主体关联起来. 后期绑定(动态绑定或运行时绑定):在程序运行阶段,判断对象类型,将方法调用与方法主体绑定. Java中除static方法和final方法外,其他所有的方法都是后期绑定. 只有非private的方法才可以被覆盖:与private重名的方法,是一个全新的方法. 只有普通的方法调用时多态的.如果访问某个成员变量,则在编译期就…
用构造器确保初始化 构造器可以确保每个对象都会得到初始化,Java毁在创建对象时自动调用构造器. 构造器采用与类名相同的名称,因此并不适合"每个方法首字母小写的风格". 构造器默认调用的是无参构造方法. 构造器没有返回值,与返回值为空(void)不同. 方法重载 方法名相同,形式参数不同的方法为重载方法. 每个重载的方法都必须有一个独一无二的参数类型列表. 参数顺序的不同也可以实现重载,但会使得程序难以维护. 如果传入的实际参数大于重载方法声明的形式参数,就必须通过类型转换来执行窄化转…
前言:最近复习java,发现一本很好的资料,<J​a​v​a​2​参​考​大​全​ ​(​第​五​版​)​> ​ ​H​e​r​b​e​r​t​.Schildt.书比较老了,06年的,一些内容有些旧了,翻译也不是太好,但这本书的知识覆盖面还是非常全面,讲述也是由浅入深,很值得参考的一本口碑非常好的书.我把一些内容加以整理,再配合着<think in Java>,把知识点梳理一遍.因为这本书的结构很好,所以目录就以这本书为主.后面看到更好的资料或有使用心得后会不断更新此文章. 本文地…
JSTL并非什么新颖的技术并且非常easy,甚至有人觉得JSTL已经过时了.可是我觉得它既然存在,就有存在的道理.作为技术人员就应该知道它们是什么,怎么使用,有什么长处. JSTL包括两部分:标签库和EL语言.以下先介绍标签库,再介绍EL语言.最后总结一下JSTL的长处. JSTL JSTL简单介绍 JSTL(JavaServer Page Standard Tag Library,即:JSP标准标签库),是由SUN公司提供的简化JSP页面设计的标签.JSTL是由Core(核心库).Format…
接口是什么?它是一种百分之百纯抽象的类. 什么是抽象类?即无法初始化的类.   例如,我们设计一个animal类,以此类为父类,分别设计了多种动物子类,例如Lion,Tiger,Cat,Wolf,Dog类.   Wolf aWolf = new Wolf(); Animal aHippo = new Hippo(); 以上都是正确,而下面这句代码就有问题了. Animal anim = new Animal();   注意:有些类是不应该被初始化的,就是这些类不能被"new"出来. 通…
程序在实际环境的执行过程中.安全成为须要首先考虑的重要因素之中的一个.这也是用户和程序猿最关心的问题.同一时候,Java语言健壮性也体如今了可以及时有效地处理程序中的错误.准确的说是Java的异常处理机制为解决安全问题提交了一份惬意的答卷. 先从总体上看一下本文要介绍的内容,然后进行具体的分析: 1.异常的概念 异常又称为例外,是特殊的执行错误对象,相应着Java语言特定的执行错误处理机制. 上面的概念是书本上说的.以下我谈一下自己的看法 事实上异常处理机制提供了统一的机制来识别和响应程序错误.…
1.介绍 在开发过程中.都会遇到程序执行时的异常,比如逻辑错误.硬件故障等,本篇博客将会具体的介绍一下Java中的异常处理机制. 2.Try和Catch捕获异常 我们在处理异常过程中经经常使用到的就是Try和Catch语句了.try语句块可以指出可能出现的异常,随后通过一个或者多个Catch语句块来捕获. 2.1.简单的Try和Catch语法 package com.RuntimeException; public class Sample11_1 { public static void ma…
第8条:覆盖equals时请遵守通用的约定 设计Object类的目的就是用来覆盖的,它全部的非final方法都是用来被覆盖的(equals.hashcode.clone.finalize)都有通用约定. 首先看看equals方法: 若满足以下的这些情况中的某一个,您能够直接使用Object类中的equals方法而不用覆盖: 类的每个实例本质上是唯一的.对于那些代表实例而不是值的类来说能够不用覆盖equals方法.比方Thread类.由于每个Thread类的实例都表示一个线程,这与Thread某些…
一.背景 工作中越来越发现对基础理解的重要性,所谓基础不牢,地动山摇.所以抽了点时间看看几本Java体系的电子书,并做笔记,如下: 二.近期要看的电子书 1.Spring实战(第4版) 2.Spring实战英文版(第5版) 3.深入实践Spring Boot 4.Spring Boot实战 5.SpringCloud 微服务实战…
1 Lamdba优于匿名内部类 (1)DEMO1 匿名内部类:过时 Collections.sort(words, new Comparator<String>() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }); 上述使用了策略模式,Comparator接口为排序的抽象策略,匿名内部类为具体实现策略,但是匿名内部类的实现过于冗长. 在java…