自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无不可编

nothing is improgrammable!

  • 博客(18)
  • 收藏
  • 关注

原创 《Thinkinginjava》第19章-枚举类型

关键字enum可以将一组具名的值得有限集合创建为一种新的类型,这些具名的值可以作为常规的程序组件使用,这就是枚举类型的本质。

2016-07-25 16:30:13 442

原创 第18章-Java IO系统

18.1 File类File类是一个实用类库工具,可以帮助我们处理文件目录问题。File(文件)类既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称。18.1.1 目录列表器查看一个目录列表有两种方式:调用不带参数的list()方法,可以获得File对象包含的全部列表。使用“目录过滤器”来获取一个受限列表,如得到所有扩展名为.java的文件。/** * Created by mr

2016-07-20 21:12:39 414

原创 《Thinkinginjava》第17章-容器深入研究

深入研究容器的意义学习散列机制是如何工作的在使用散列容器时怎样编写hashCode()和equals()方法为什么某些容器有不同版本的实现以及如何选择它们17.1 完整的容器分类法完整的容器图17.2 填充容器Collections容器工具类中的填充方法Collections.nCopies()Collections.fill()以上两种填充方式都只是复制一个对象引用来填充整个容器,并

2016-07-19 11:49:57 523

原创 《Thinkinginjava》第15章-泛型

一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果需要编写可以应用于多种类型的代码。这种刻板的限制对代码的束缚就很大。所以从Java SE5开始,泛型出现了,泛型实现了参数化类型的概念,使代码可以应用于多种类型。

2016-07-12 11:05:00 425

原创 《Thinkinginjava》第14章-类型信息

14.1 RTTI是什么RTTI:Run-Time Type Information,运行时,识别一个对象的类型。java主要以两种方式在运行时识别对象和类型信息:“传统的”RTTI,假定我们在编译时已经知道了所有的类型“反射”机制,在运行时发现和使用类的信息14.2 class对象类型信息在运行时是如何表示的呢,这项工作是由称为Class对象的特殊对象完成的,它包含了与类有关的信息,事实上,

2016-07-07 14:46:09 369

原创 《Thinkinginjava》第13章-字符串

字符串操作是计算机程序设计中最常见的行为13.1 String的不可变性 String对象是不可变的。String类中那些看起来会修改String的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串的内容。而最初的String对象根本没有改变。public class Immutable { public static String upcase(String s

2016-07-01 16:58:51 435

原创 《Thinkinginjava》第12章-异常处理

java的基本理念是:结构不佳的代码不能运行 异常处理能够保持程序及系统的健壮性。12.1 基本异常异常情形是指阻止当前方法或域继续执行的问题。异常情形和普通问题的区别就是普通问题在当前环境下能够获得足够的信息去处理错误,而异常情形在当前环境下无法获得必要的信息来解决问题,所以不能继续下去。所能做的只是从当前环境跳出,并把问题交给上一级环境,这就是抛出异常时发生的事情。抛出异常后发生了什么?

2016-07-01 16:57:41 812

原创 《Thinkinginjava》第11章-持有对象

本章介绍了对象的持有技术,其实就是java中的容器,不作详细记录,只记录一些平时忽略掉的重点:java中其实只有四种容器:Map、List、Set和Queue。Iterator只能前向移动,ListIterator只能用于各种List的访问,但是它能双向移动。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator,也可以通过listIterator(n)方

2016-06-30 15:27:01 508

原创 《Thinkinginjava》第10章-内部类

定义定义在一个类内部的类叫做内部类创建内部类的方式就是简单地把类的定义放在外围类的里面。如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,必须具体指明这个对象的类型,如:OuterClassName.InnerClassName

2016-06-29 11:37:06 1533 1

原创 《Thinkinginjava》第9章-接口

接口和内部类为我们提供了一种将接口和实现分离的更加结构化的方法我们应该首先了解抽象类,因为它是普通类和接口之间的中庸之道,我们不可能总是使用接口,有时候也要使用抽象类。9.1 抽象类和抽象方法抽象方法的语法:abstract void f();,被abstract关键字修饰或者包含抽象方法的类叫抽象类。抽象类中可以没有抽象方法,但是一个类包含一个或多个抽象方法时,这个类必须被限定为抽象类。(否则编译

2016-06-27 21:07:48 407

原创 《Thinkinginjava》第8章-多态

多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来,多态的作用是消除类型之间的耦合关系。多态也成为动态绑定、后期绑定或运行时绑定。

2016-06-27 21:05:09 337

原创 《Thinkinginjava》第7章-复用类

在java中,问题的解决都是围绕类展开的,我们通过创建新类,也可以使用别人已经开发并调试好的类而不用再从头开始编写,这时候就称为复用类复用类的窍门在于使用类而不破坏现有程序代码,包括两种方法(代码重用机制):在新类中使用现有类的对象,由于新类是由现有类的对象组成,所以这种方法称为组合按照现有类的类型来创建新类,采用现有类的形式并添加新代码而不改变现有类的形式,这种方式称为继承

2016-06-22 22:13:20 930 1

原创 《java并发编程实战》第11章-性能与可伸缩性

11.1 对性能的思考11.1.1 性能的提升意味着什么 提升性能意味着用更少的资源做更多的事情, 在任何时刻,提升性能的前提是要保证程序的正确性当操作由于某种特定的资源而受到限制时,通常就称该操作为资源密集型操作,如CPU密集型、数据库密集型等,如果程序需要大量的运算工作,则称这个程序是计算密集型的。11.1.2 如何获取更好的性能更有效地利用现有处理资源尽可能地利用新的处理资源

2016-06-22 15:47:17 1936 1

原创 《Thinkinginjava》第6章-访问权限控制

为什么会有访问控制权限面向对象的设计中需要考虑一个问题:“如何把变动的事物与保持不变的事物区分开来”。当一个类库被设计出来提供给别人使用时,类库的设计者们要保证当类库发布新版本时,类库的消费者(程序猿)们不需要改写原有的代码,设计者们必须在不影响客户端代码的情况下进行修改和改进。然而与此同时,新的问题出现了:设计者们如何知道他们改哪些代码而不影响码农们的客户端代码呢,因为他们并不知道自己设计的类库中

2016-06-20 21:42:21 306

原创 《java并发编程实战》第10章:避免活跃性危险

10.0 活跃性线程的活跃性到底是什么呢?我们得先知道线程带来的风险:安全性问题(永远不会发生糟糕的事情)活跃性问题(某件正确的事情最终会发生)性能问题(正确的事情要尽快发生)当某个操作无法继续执行下去时,就会发生活跃性问题,如:死锁、饥饿以及活锁等情况导致操作无法继续执行下去,这时就发生了活跃性问题10.1 死锁 经典的“哲学家进餐”问题很好地描述了死锁状况,以下情况发生时,哲学家们将

2016-06-20 15:34:37 1164

原创 《Thinkinginjava》第3章-操作符

第三章-操作符赋值  基本类型存储了实际的值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将内容从一个地方复制到另一个地方,如对基本类型使用a=b,那么b的内容就复制给了a,如果接着修改了b,则a根本就不会受到影响,但是在为对象“”赋值“”的时候,真正赋予的是对象的引用,若“”将一个对象赋值给另一个对象“”,实际是将“”引用“”从一个地方复制到另一个地方,意味着假如使用c=d,那么c和d都

2016-06-20 10:10:55 385

转载 互联网协议入门

来源:阮一峰 链接:http://www.ruanyifeng.com/blog/2012/06/internet_protocol_suite_part_ii.html我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心

2016-06-19 22:21:42 326

原创 《Thinkinginjava》第5章-初始化与清理

第五章-初始化与清理重载(overload) 重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。其中,参数列表不相同分为以下几种情况:参数个数参数类型参数顺序(一般情况下别这么做,因为这回使代码难以维护)为什么我们不能根据函数或者方法的返回值来区分是否重载呢,这是因为有时候我们并不关心方法的返回值,就

2016-06-19 21:20:51 329

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除