数据库范式(Normal Form)
1、第一范式(1NF):属性不可再分第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库[@more@]第一范式:数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体的某个属性不能有多个值,或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多的关系。第一范式中,表的每一行只包含一个实例的信息。简言之,第一范式就是无重复的列。2、第二范式(2NF):消除第一范式中的部分依赖第二范式是在第一范式基础上建立起来的,
《Java编程思想》学习笔记07、多态
1、将某个对象的引用视为其基类对象的引用的做法被称作“向上转型”(upcasting)2、向上转型使得方法简单,它只接受基类引用作为参数,不去考虑子类的特殊性,每种子类具体的的操作,由多态的动态绑定来实现3、将方法调用同方法主体关联起来叫做绑定(binding),在编译期进行的绑定叫做前期绑定(early binding),运行时进行的绑定叫做后期绑定(late binding)或动态绑定(dynamic binding)或运行时绑定(run-time binding),面向过程的语言(比如C)只能进行前期绑定,Java中除了static和final方法(private方法属于final)外,全是后期绑定4、多态
《Java编程思想》学习笔记06、复用类
1、组合,用于在新类中使用现有类的功能,而并非它的接口,即把现有类作为一种内部工具来使用,把它的对象在新类中定义成private;但在某种组装的情况下,也可以让新类用户直接访问其中的组合成分,即把现有类的对象在新类中定义成public的2、组合,对应面向对象中的“包含(has-a)”关系,继承,对应“是一种(is-a)”关系[@more@]3、protected关键字:对于类用户而言,这是private,但对于任何继承于此类的子类或其它任何位于同一个包内的类来说,它是可以访问的(相当于public),注意:protected也提供了包内访问权限4、通常:数据成员p
《Java编程思想》学习笔记05、隐藏具体实现
1、访问权限:public,谁都能用private,只允许类的创建者用这个类的方法进行访问protected,与private类似,但允许继承类访问protectedpackage,缺省访问权限,一般不会显式的写出,即以上三个都没有使用时,默认为package,允许同一个package下的类访问,对当前package之外则为private[@more@]这些访问权限修饰词可以修饰类、类的成员、类的方法,但要注意,类不可以是private或protected的,否则写它就没意义了,如果不想让别人使用它,可以把构造函数写成private。2、一个java源代码文件(.java),通常被称为一个编译单元(compilation
《Java编程思想》学习笔记04、初始化与清除
1、对象的创建与初始化是同一个概念,不能分离2、构造函数名必须与类名完全相同,某种意义上讲,构造函数可以看成静态方法,它对于同一个类的每个对象都是一样的,且执行它的时候对象还未创建好3、默认构造函数(default constructor)是无参数的,编译器将无参构造函数(可能是自己定义的)视为默认构造函数[@more@]4、构造函数可以有参数,一定没有返回值(与void型方法不是同样概念,void是编写者自行确定不返回任何值)5、可以重载(overloading)构造函数6、重载规则(适用于全部重载):每一个经过重载的方法都必须有唯一的参数类型
《Java编程思想》学习笔记03、控制程序流
1、大部分操作符只能操作基本类型(primitives),只有=、==和!=可以操作对象,另外String支持+和+=2、在=两边,右值(rvalue)可以是常数、变量或表达式,左值(lvalue)必须是一个变量,即必须有物理空间来存储rvalue3、对基本类型赋值,是将一个地方的内存复制到了另一个地方[@more@]1、大部分操作符只能操作基本类型(primitives),只有=、==和!=可以操作对象,另外String支持+和+=2、在=两边,右值(rvalue)可以是常数、变量或表达式,左值(lvalue)必须是一个变量,即必须有物理空间来存储rvalue3、对基本类型赋值,是将一个地方的内存复制到
《Java编程思想》学习笔记02、一切都是对象
1、用于操纵的对象标识符实际上只是对象的一个引用(reference),引用指向对象,与对象相关联2、如“String s;”这样的定义,只创建了一个引用,并没有关联到具体对象,此时向s发送消息(即使用s来调用方法),将会返回运行时错误3、new关键字,为对象分配存储空间,将对象存储在“堆(heap)”里,用堆进行存储分配比用栈进行存储分配需要更多的时间4、Java的对象存储在堆里,对象的引用存储在栈里,但基本类型是特例,基本类型的对象是存储在栈里的[@more@]5、九种基本类型:boolean、char(16-bit)、byte(8-bit)、short(16-bit)、int(32-
《Java编程思想》学习笔记01、对象引论
1、问题的复杂性直接取决于抽象的类型和质量,同一个问题,如果抽象的方法不同或质量不同,解决时的复杂性可能有很大差距2、面向对象思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定问题3、面向对象程序设计方式的五个基本特性(最初来自smalltalk) a、万物皆为对象/Everything is an object. b、程序是对象的集合,它们彼此通过发送消息来调用对方/A program is a bunch of objects telling each other what to do by sending messages. c、每个对象都拥有由其它对象所构成的存储/Each object has its own memory made u
数据的六种存储位置
摘自《Thinking In Java》 3rd Edition数据的六种存储位置:寄存器、栈、堆、静态存储、常量存储、非RAM存储[@more@]1. 寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。(先不用考虑它了) 2. 堆栈(stack,也简称为栈。位于通用RAM(random-access memory,随机访问存储器,就是内存)中,但通过它的“堆栈指针”可以从处理器那里获得直接支持。堆栈指针若向下
Java编程风格——初学者应先培养好习惯
1、注意缩进和空行,每行不要超过80字符2、名字要具有描述性,但不要过长,远程时不建议使用短名[@more@]3、特殊名称(比如pi),应被定义为final4、不要让一个类太大,同理,也不要让一个方法太大(尽量不超过50行)5、尽量避免在代码中调用其它语言(如C、php等)6、选择相对较优的算法7、类名的首字母大写8、方法名的首字母小写,之后每个词的首字母大写,使用动词或动宾短语来命名方法9、如果不能确定一个变量该声明为什么,应暂声明为private10、变量名首字母小写,之后每个词的首字母大写,不要使用下划线11、常量一般全部大写,可以
让Windows记事本(notepad.exe)自动给文本文件加上时间戳
windows记事本(notepad.exe)可以给.txt文件自动加上时间戳,[@more@]只要在.txt文件开头如图写入.LOG,保存关闭,然后每次再打开此文件的时候,就会自动记录下打开的时间,很适合用来做每天的工作情况记录,我就是这样用记事本记下学习内容,然后copy到blog来的。
开篇·宣言
我决定了,我要好好学习、好好工作,开拓出自己的大好前途我决定了,我要一辈子干技术,这是我选择的路现在的我,还是一个热血青年,有着美好的梦想和单纯的心现在的我,还是个学生,既没有什么特长,也没有擅长的技术方向我知道的技术知识很多,认真学过的不多,会用的很少,精通的没有每次找兼职,在面试官鄙视的眼神下我总是很惭愧,我想变强论坛里有很多高手,在看到他们的讨论贴时,我总是很自卑,不敢搭话我有很强的自尊心,但信心不足我有要强的个性,却没有放狠话的资本我要用这个blog记录下我的学习历程可能我会记录一些很浅的基