
读书笔记
文章平均质量分 78
码农同学
爱动漫,爱AC,立志成为攻城师!
展开
-
Core Java(十二) Object类的重要方法
Object是所有类的最终祖先。,可以使用Object类引用任何类型的对象。在Java中,只有基本类型不是对象。Equals方法Object类中的equals方法用于检测一个对象是否等于另外一个对象。在Object类中,这个方法将判断两个对象是否具有相同的引用。但是,我们一般意义上的相等不仅仅是具有相同的引用,如果另个对象的状态相等,就认为另个对象是相等的。所以,子类要重写超级类中的e原创 2013-01-22 19:35:08 · 4546 阅读 · 0 评论 -
Core Java (十六) 内部类
内部类,inner class,是定义在另一个类中的类。内部类是一种编译器现象,与虚拟机无关,编译器将会把内部类翻译成用$分隔外部类名与内部类名的常规类文件,而虚拟机对此一无所知。内部类比常规类更加强大,最大的特点是内部类可以访问外围类的私有数据。非内部类的修饰符 only public, abstract & final are permitted,而内部类可以有private修饰。内部原创 2013-01-23 22:04:19 · 1249 阅读 · 0 评论 -
Core Java (四) Java文件操作
下面介绍几个在OCJP中要求的io中的类的使用:java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter, PrintWriter, and Console.OCJP要求的几个文件操作类的层次关系:左边的类是右边类的supercalssPrintWriter类创建一个Pri原创 2013-01-16 23:08:39 · 1274 阅读 · 0 评论 -
Core Java (二十一) 映射表(Map接口)
映射表是一种数据结构,用于存放键值对。如果提供了键,就能查找到值。Map接口的方法:Modifier and TypeMethod and Descriptionvoidclear()Removes all of the mappings from this map (optional operation).b原创 2013-01-26 11:13:47 · 3042 阅读 · 1 评论 -
Core Java (二十五) List与Array的相互转化,Set与Array的相互转换
List与Array的相互转化List转化成Array调用了List的toArray方法,有两个同名方法,其中Object[] toArray()返回一个Object类型的数组,但使用起来很不方便。另外一个是public T[] toArray(T[] a),返回一个泛型数组T[].Array转化成List调用了Arrays类的静态方法asList,返回一个包装了普通java数组原创 2013-01-26 23:09:56 · 7997 阅读 · 1 评论 -
Core Java (二十四) SortedMap,NavigableMap,SortedSet,NavigableSet接口
SortedMap接口根据比较器进行排序,是一个有序映射表。ComparatorK>comparator()Returns the comparator used to order the keys in this map, or null if this map uses the natural ordering of its keys.原创 2013-01-26 21:40:31 · 3587 阅读 · 0 评论 -
Core Java (二十三) 集(Set接口)
之前我写过的一片博文讲过了散列表(Hash Table),而散列表可以用来实现散列集(HashSet)和散列映射表(HashMap)。HashSetHashSet类有四种构造函数:Constructor and DescriptionHashSet()Constructs a new, empty set; the backing HashMap原创 2013-01-26 15:46:57 · 880 阅读 · 0 评论 -
Core Java (二十) Iterator,Iterable,Collection接口
Java集合类库将集合的接口与实现分离。同样的接口,可以有不同的实现。Java集合类的基本接口是Collection接口。而Collection接口必须实现Iterator接口。以下图表示集合框架的接口,java.lang以及java.util两个包里的。红色字体部分是OCJP考纲要求的接口。其他部分可以从左向右看,比如Collection的Subinterfaces有List,Set以及原创 2013-01-25 23:38:04 · 8406 阅读 · 4 评论 -
Core Java (二十二) 列表(List接口)
列表是一个有序的集合(an ordered Collection),可以包含重复的元素,可以包含null,也可以什么都不包含只有null。ListList接口的所有方法:Modifier and TypeMethod and Descriptionbooleanadd(E e)Appends the specified eleme原创 2013-01-26 14:16:11 · 1515 阅读 · 1 评论 -
Core Java (十七) 异常
异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器。如果某个方法不能够采用正常的途径完成它的任务,就可以通过另外一个路径退出方法。这时,方法不会继续执行,也不返回任何值,而是抛出一个封装了错误信息的对象,异常处理机制开始搜索能偶处理这种异常的异常处理器。异常对象全部派生自Thorwable类。下面的图表是OCJP的考试要求的几个异常,其实异常比这个要多原创 2013-01-24 21:12:34 · 4369 阅读 · 0 评论 -
Core Java (十八) 断言
在Java中,有三种处理错误的机制:抛出一个异常,日志,使用断言。断言机制允许在测试期间向代码中插入一些检查语句。当代码发布时,这些插入的检测语句将会被自动地移走。断言只应用在测试阶段确定程序内部的错误位置。assert有两种形式:assert 条件;assert 条件:表达式;这两种形式都会对条件进行检测,如果条件为false,就会抛出一个AssertionE原创 2013-01-24 23:11:21 · 1058 阅读 · 0 评论 -
Core Java (十九) 泛型程序设计(Generic parogramming)
泛型程序设计(Generic parogramming)意味着编写的代码可以被很多不同类型的对象所重用。泛型,提供了类型参数(type parameters),使得程序具有更好的可读性和安全性。例如: ArrayList files = new ArrayList();表明了ArrayList类有一个类型参数String来指示元素的类型。泛型类泛型原创 2013-01-25 21:28:42 · 1312 阅读 · 0 评论 -
Core Java (一) Java白皮书中的关键术语
Java白皮书中的关键术语:简单性,Java比C++更易学习,Java剔除了C++中很少使用的难以理解的特性,很多语法也与C++相似。面向对象,现代编程语言几乎都是面向对象的。网络技能,Java的网络能力强大易用。健壮性,Java采用指针模型而不是显示指针,可以消除重写内存和损坏数据的可能性。安全性,Java可以构建防病毒,防篡改的系统,安全性能很高。体系结构中立,Java编译器生成与原创 2013-01-14 09:58:18 · 1515 阅读 · 0 评论 -
Core Java (十一) Java 继承,类,超类和子类
继承关系两个类之间存在三种关系:依赖,uses-a,如果一个类的方法操纵另一个对象,我们就说一个类依赖于另一个类。聚合(关联),has-a,一个对象包含另外一个对象,聚合关系意味着类A的对象包含类B的对象。继承,is-a,如果两个类之间存在明显的is-a(是)关系,例如每个经理都是雇员,那这两个类有继承关系。例如:class Manager extends Employee原创 2013-01-22 17:08:22 · 8510 阅读 · 0 评论 -
Core Java (十) 对象与类总结
一定要将数据设计为私有一定要对数据初始化不要在类中使用过多的基本数据类型不是所有的域都需要独立的域访问器和域更改器使用标准格式进行类的定义;按照公有,包作用域,私有的顺序;每一部分中,要按照实例方法,静态方法,实例域,静态域的顺序列出来。将职责过多的类进行分解类名和方法要能够体现他们的职责下面一个测试程序,测试了重载构造器,调用另一构造器,默认构造器,对象初始化块,静态初始化块,实例域初始化等原创 2013-01-22 10:16:41 · 983 阅读 · 0 评论 -
Core Java (九) Java的方法参数
在各种程序设计语言中方法的参数有两种,分别是:值调用,引用调用。Java程序设计语言总是采用值调用,即方法得到了所有参数值的一个拷贝。细分的话,方法参数一共两种类型:如果参数是基本数据类型,那么传递的是一个基本数据类型的值;如果参数是对象,那么传递的是一个对象引用的拷贝,注意不是C++中的对象引用。这个引用的拷贝和其他的拷贝一样,同时引用了一个对象。一个方法不可能修改一原创 2013-01-22 00:35:29 · 779 阅读 · 0 评论 -
Core Java (八) Java中的代码点与代码单元
最近看core java,之前一直不明白,看了不少帖子和博客,总算搞明白了。Java中,char[]、String、StringBuilder和StringBuffer类中采用了UTF-16编码,使用U+0000~U+FFFF来表示一个基本字符(BMP字符),但是位于U+D800到U+DBFF和U+DC00到U+DFFF的char被视为无定义字符。大多数的常用Unicode字符使用一个代码单元原创 2013-01-21 21:51:21 · 4818 阅读 · 1 评论 -
Core Java (三) Java的输入与输出
一个简单的java输入输出实例,包含了最常用的输入输出函数。package com.xujin;import java.util.Date;import java.util.Scanner;public class MyTest{ static Scanner cin = new Scanner(System.in); public static void main(原创 2013-01-16 21:27:48 · 908 阅读 · 0 评论 -
Core Java (七) Java中的static修饰符
static为静态的意思,常用来修饰内部类,方法,变量。静态域static修饰的变量在每个类中只有一个副本,即这个类的所有对象共享一个变量,它属于类,不属于任何独立的对象。package com.xujin;class Base{ protected static int MAX = 100;}public class Another extends B原创 2013-01-21 00:29:20 · 907 阅读 · 0 评论 -
Core Java (六) 打印指定月份的日历
更改的core java的一个程序,利用了GregorianCalendar这个类。输入年份以及月份,打印出指定月份的日历。package com.xujin;import java.text.DateFormatSymbols;import java.util.Calendar;import java.util.GregorianCalendar;import java.u原创 2013-01-17 23:51:39 · 1779 阅读 · 0 评论 -
Core Java (五) Java数组
数组的初始化和拷贝package com.xujin;import java.util.Arrays;public class Test { public static void main(String[] args){ int[] a = {2, 3, 5, 7}; int[] b = a;//此时a与b引用同一个数组 System.out.println(Ar原创 2013-01-17 16:10:13 · 586 阅读 · 0 评论 -
Core Java (二) Java的基本结构与数据类型
一个简单的Java文件,Test.javapackage com.xujin;public class Test{ public static void main(String[] args){ System.out.println("Hello!"); }}该程序实现了将字符串“Hello!”打印到控制台console里面。要注意的几点:Ja原创 2013-01-16 21:05:16 · 958 阅读 · 0 评论 -
Core Java (十五) Java中的类型转换
自动类型转换在运行程序的时候,经常需要类型转换,Java会在以下情况下,自动做数据类型的转换。转换前的数据类型与转换后的类型兼容。转换后的数据类型的表示范围比转换前的类型大。在可以转换的前提下,a->b,即使b的表示范围大于a的表示范围,但如果b的精度不够,则最终的结果会丧失一些精度。以下转换不会丧失精度:byte->shortshort->intc原创 2013-01-23 17:17:23 · 1885 阅读 · 0 评论 -
Core Java (十四) 接口,对象克隆,回调
接口接口技术用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现一个或者多个接口,并在需要借口的地方,随时使用实现了相应接口的对象。为了让类实现某个接口,通常需要:将类声明为实现给定的接口对接口中的所有方法进行定义以下例子简单的实现了一个接口compareTo:package com.xujin;public class Main{ publi原创 2013-01-22 22:36:20 · 1157 阅读 · 0 评论 -
Core Java(十三) 泛型数组列表,对象包装器与自动打包,枚举类
ArrayListArrayList是一个采用类型参数的泛型类,例如ArrayList,这是一个保存有Employee类型对象的泛型数组列表。构造器:ArrayList staff = new ArrayList();下面是一个ArrayList的例子,实现了泛型数组列表的构造器,add方法,remove方法,set方法等等。package com.xujin;原创 2013-01-22 20:51:15 · 1518 阅读 · 0 评论 -
c++primer学习笔记(3.5)标准库bitset类型
3.5标准库bitset类型功能:处理二进制位的有序集#includeusing std::bitset; 初始化bitset变量的方法:bitset b;b有n位,每位都为0bitset b(u);b是unsigned long型u的一个副本bitset b(s);b原创 2012-02-25 10:37:27 · 1281 阅读 · 0 评论 -
c++primer学习笔记(4.1)数组
第四章 数组和指针现代c++程序应该尽量使用vector和迭代器类型,而避免使用低级的数组和指针。数组和指针只有在强调速度的时候才在类实现的内部使用数组和指针。然而,c++程序在相当长的一段时间里依然大量使用数组和指针,c++程序员还必须掌握它。数组由类型名,标识符,和维数组成。数组的维数必须是大于或等于一的常量表达式。此常量表达式包括:字面值常量,枚举常量,或者用原创 2012-02-25 15:25:48 · 760 阅读 · 0 评论 -
c++primer学习笔记(4.2)指针的引入
4.2指针的引入*符号把一个标识符声明为指针:vector *pvec; pvec是一个执行vector类型对象的指针int *ip1,*ip2; ip1和ip2分别是指向int类型对象的指针 一个有效的指针必然是以下三种状态:1.保存一个特定对象的地址;2.只想某个对象后面的一个对象;3. 0值注意:避免使用未初始化的指针,悬空指针,d原创 2012-02-25 23:20:19 · 745 阅读 · 0 评论 -
c++primer学习笔记(3.3)标准库vector类型
3.3标准库vector类型#includeusing std::vector;vector不是一种数据类型,它是一种类模版。初始化vector对象的方法:vector ivec1; //ivec保存类型为int型,默认构造函数vector ivec2(iver1); //ivec2是ivec1的一个副本,ivec2必须和ivec1是相同类型的!!vecto原创 2012-02-24 19:23:17 · 1328 阅读 · 5 评论 -
c++primer学习笔记(4.3) C风格的字符串
4.3 C风格的字符串c++尽管支持c风格的字符串,但不该在c++中使用这个类型。c风格的字符串常常带来许多错误!#includecstring是string.h头文件的c++版本c风格的字符串是以空字符null("\0")结束的字符数组。c风格字符串的的标准库函数:strlen(s) 返回s的长度,不包括null字符!!注意与si原创 2012-02-27 22:26:27 · 822 阅读 · 0 评论 -
c++primer学习笔记 ( 第九章 顺序容器)
9.1顺序容器的定义#include#include#includevector ivec; //定义一个空的vector类型,vector ivec2(ivec); //复制初始化vector ivec2(ivec); // 同上vector ivec(10); // 十个零vectorivec(10,1); //十个一vector原创 2012-03-23 23:30:27 · 1302 阅读 · 0 评论 -
c++primer学习笔记(4.4)多维数组
4.4多维数组多维数组其实是数组的数组!!多维数组的初始化:int ia[3][4]={ {0,1,2,3}, {0,1,2,3}, {0,1,2,3}, {0,1,2,3},} int ia[3][4]={ 0,1,2,3} //仅仅初始化第一行的4个元素 int ia[3][4]={ {原创 2012-02-28 22:13:58 · 489 阅读 · 1 评论 -
c++primer学习笔记(5.0)表达式
5.1算术操作符算术操作符优先级——一元操作符级别最高,其次是乘除操作,接着是二元的加减法操作。求余操作和除法操作注意一正一负的情况-21%-8 //result is -5 close to 021%-5 //result is 1 or -4-21/-8 //result is 2 close to 0原创 2012-03-02 17:33:58 · 802 阅读 · 0 评论 -
c++primer学习笔记(6.0)语句
6.1简单语句空语句 ;单个分号 //无关的空语句并非是无害的6.2声明语句对象或类的定义或声明6.3复合语句(块)块标志了一个作用域如while循环,块并不是以分号结束的6.4语句作用域在条件表达式中定义的变量必须初始化,该条件检验的就是初始化对象的值。6.5if语句if(a>b){/**/}else if(原创 2012-03-03 20:35:44 · 703 阅读 · 0 评论 -
c++primer学习笔记(3.1)命名空间的using声明
第三章 标准库类型3.1命名空间的using声明通常,头文件中应该只定义确定必要的东西。#include using std::cin;using std::cout;using std::endl; int main(){//some codes.....}C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。 所以,比上面的声原创 2012-02-24 15:51:36 · 684 阅读 · 0 评论 -
c++primer学习笔记(3.2)标准库string类型
3.2标准库string类型初始化string类型的方式: string s1; // 默认构造函数,s1为空串string s2(s1); // 将s2初始化为s1的一个副本string s3("value"); // 将s3初始化为一个字符串字面值副本string s4(n, 'c'); // 将s4初始原创 2012-02-24 16:07:52 · 1099 阅读 · 0 评论 -
c++primer学习笔记(3.4)迭代器iterator
3.4迭代器简介迭代器是一种检查容器内元素并遍历元素的数据类型。每种容器都定义了自己的迭代器类型,如:vector::iteror iter; //定义了一个名为iter的变量,他的数据类型是有vector定义//的iterator类型。begin和end操作由begin返回的迭代器指向第一个元素vector::itertor iter=ive原创 2012-02-25 10:41:12 · 1667 阅读 · 1 评论 -
算法竞赛入门经典读书笔记(二)7.1简单枚举
7.1.1简单枚举除法输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2样例输入:62样例输出:79546/01238=6294736/01528=62程序代码:#include using namespace std;int isright(int,int);int ma原创 2012-05-22 22:55:24 · 6538 阅读 · 8 评论 -
算法竞赛入门经典读书笔记(三)7.2枚举排列
7.2.1生成1~n的所有排列递归调用的方法可以实现。#include using namespace std;void print_permutation(int n,int *A,int cur){int i,j;if(cur==n){for(i=0;i<n;i++) cout<<A[i];cout<<endl;}else for(i=1;i<=n;i++){i原创 2012-05-22 23:53:37 · 1366 阅读 · 0 评论 -
算法竞赛入门经典读书笔记 第一章
第一章学习笔记Pi的求法:#include#includeint main(){printf("%.6lf\n",4.0*atan(1.0));return 0;}Atan是反正切函数,4.0*atan(1.0)值为piSqrt函数如果写成sqrt(-10)系统不会报错,结果显示-1.#IND00如果1.0/0.0 or 0.0/0.0 系统也不会报错原创 2012-05-19 12:52:29 · 1077 阅读 · 0 评论