JAVA学习笔记.doc_第1页
JAVA学习笔记.doc_第2页
JAVA学习笔记.doc_第3页
JAVA学习笔记.doc_第4页
JAVA学习笔记.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-String-7.16A.This关键字的部分用法(JAVA中为解决命名冲突和不确定性问题,引入“this”关键字来代表其所在方法的当前对象)1. this关键字可以用来在一个构造器中调用另一个构造器,不能在自身调用自身2. 使用this关键字调用其他构造器的时候,必须把该语句放在最前面3. 在一个构造器中只能调用一个其他的构造器,不能调用多个构造器4. 在多个构造器相互调用的时候,最终必须有一个出口5. 在类本身的方法或构造器中可以用来引用该类的实例变量和方法B.方法重载1. 方法名相同2. 方法名相同形参个数不同3. 如果形参个数相同,则形参类型必须不同4. 与返回类型无关C.继承1. 继承最少要发生在两个类之间,且是单一继承(一个类只能直接继承一个除自身以外的父类)2. 它的主要目的是作为模板提高代码的重用性3. Java中的所有类都存在继承关系4. 继承的关键字为 extends,模式为(子类 (派生类)extends(父类 (基类、超类)5. 子类是一个特殊的父类,是对父类的一个扩展6. 如果两个类之间发生继承关系,那么在实例化子类对象的时候,JVM会隐式的为我们创建一个父类对象7. 如果存在继承关系,在一定的访问权限下子类可以无偿的使用(直接调用)父类的属性和方法。在调用的父类的方法的时候,首先判断自身有没有该方法,若有就调用该方法,若无就向上找父类的该方法并调用之8. 父类属于“风流类”,因为他永远不知道自己的子类是谁典型案例输出结果为:111111 22222 33333 44444D.访问权限问题1. private 本类中可以访问 2. 默认(default) 在同一个包中可以访问3. protected 如果没有继承关系,则访问权限不能超过包;如果发生了继承关系,即使子类和父类不在同一个包里,“子类对象”也可以访问protected所修饰的属性或方法4. public 在不在同一个包里都可以访问,没有限定访问权限同一类同一包不同包privatexx默认(default)xprotected无继承关系x有继承关系,子类对象访问publicE.实例化就是创建对象的过程 多态(Polymorphisn)1. 就是一种运行时动态绑定机制2. F.向上转型:把子类型转换为父类型。使用父类的引用指向子类的对象,此种转型是自动的面向对象三大特征:封装、继承、多态封装:一个类把属性定义为私有的,给外界提供共有的set、get方法,别的类通过set、get方法并且加上逻辑判断来给属性赋值,达到保护属性的目的7.17A. 方法重写(子类继承父类的时候,父类中的有些行为(方法)不能满足子类的需求,这时候子类就需要重写修改父类中的这些行为(方法)1. 方法名必须相同2. 子类的访问权限不能小于父类被重写方法的访问权限3. 父类中私有的方法是不能被继承的,所以也不能被重写4. 子类重写方法的返回类型要和父类的返回类型一致5. 参数列表相同(子类重写方法的形参类型必须和父类的形参类型一致)6. 在父类构造器中不要调用被子类重写的方法 B.Java中Object类是所有引用数据类型的父类(即所有引用数据类型对象都属于Object类) C.向下转型(类型强制转换)按照正常写法在编译期可以通过,但在运行期就会出错但是我们可以通过一定的手段来解决下转型,让其成功先上转型在下转型父类对象永远不能充当子类型D.instanceof关键字 1. 没有继承关系的两个类是不能进行上转型或者下转型的7.18A.B.JAVA中常量的初始化有两种方式:1.在定义的时候直接赋值初始化;2.在构造器中进行赋值初始化C.一个被定义成final的方法是不能被子类重写的,所以当一个父类的方法不想让子类去修改的时候就把该方法定义为final的,定义为final的方法能被继承但不能被重写D.Abstract1. 在class关键字前面使用abstract将其定义为抽象类2. 抽象类中可以定义抽象方法3. 抽象方法没有方法体-只有方法定义没有具体实现,所以它不能被实例化4. 要求其直接子类必须要有类中定义的所有方法5. 普通类(非抽象类)中是不可以定义抽象方法的,只有抽象类中可以定义抽象方法6. 抽象类中的所有方法只能靠子类去调用E.super是一个在继承关系中用来区分父类对象和子类对象的关键字,如果发生了重写,在子类中调用父类中的被重写的方法时用super关键字调用父类的原方法7.19A. 在静态方法中是不能调用非静态方法的,也不能在静态方法中使用this、super关键字B. 非静态的创建是在内存创建完对象之后才形成的C. 一个类首先要通过加载然后才可以通过类去创建对象D. 类加载的时候静态的内容就在内存中创建出来了,这个时候还没有对象,所以不能在静态方法中调用非静态的方法E. 但是在非静态方法中可以调用静态的方法F. 父类中的静态方法可以被子类继承但是不能被子类重写(因为静态的内容是前期绑定,即编译器绑定)引用是父类型就调用父类的该方法,引用是子类型就调用子类的该方法单例设计模式以下两种方法都属于单态设计,外界只能创建一个新的Person实例对象单态设计模式可以减少对象创建,减少内存开销接口 是不能new的。接口是一个特殊的抽象类,接口中所有的方法都是共有的抽象的,接口中所有的属性都是静态常量 ,接口中没有构造器 ,接口可以多继承(接口继承接口)但不能继承类,类是实现接口不是继承接口 7.20抽象类和接口的区别:1. 抽象类中可以有抽象方法也可以由非抽象方法,而且抽象类中的方法的访问权限没有限制2. 接口中所有方法都只能是public abstract 的3. 接口中所有的属性都是 public static final的,并且在定义的时候就要赋初始值4. 抽象类只能单一继承,接口可以多继承5. 抽象类还可以作为模板,让子类复用它的代码,而接口则是作为一种规则*集-合*插入顺序和输出顺序一致添加“相同”的元素可以重复插入不可以装重复元素可以装重复元素自动装箱7.23泛型有关I/O1. InputSream:磁盘、网络、电脑内存等数据源的数据通过JAVA程序读取到JVM的内存中的过程叫输入2. OutputSteam:把JVM内存中的数据写到磁盘、网络、电脑内存等目标的过程叫输出3. 按照处理单位来说:字节流(输出字节流(outputstream)、输入字节流(inputsteam)、字符流(输出:Reader、输入:Writer)。按照功能来说:节点流(直接和数据源或者目标打交道的流)、处理流(没有直接和数据源或目标打交道,而是对节点流的功能进行装饰,以达到提高节点流的输入或输出功能的流)。按照流向来说:输入流、输出流4. 输入输出永远都是以计算机为参照点5. File:File类代表的就是计算机磁盘上所有文件的模板,每一个文件对应的就是一个File类的实例流是一种资源,对资源操作用完后要关闭:1、资源占内存,我们要释放资源来提高内存空间;2、在操作资源的时候如果不关闭那么其他的程序时不能使用该资源的,所以我们在所有的IO操作结束后要断开和资源之间的连接7.26-对象序列化-1. 对象序列化:就是把对象通过IO保存在磁盘或网络中的目标的过程2. 一个对象序列化的时候只有属性和类名序列化,方法不进行序列化,但是静态的属性也不会序列化,被transient关键字修饰的实例属性也不会被序列化3. 在对象序列化的时候要生成序列化的版本号,这样不管class是否升级。还有出于安全角度考虑,当反序列化的时候就要被反序列化的类必须持有和序列化相同的版本号,如果版本号不一致会导致反序列化失败。4. 对象反序列化就是把已经序列化在磁盘或网络中的数据通过IO在得到原来的“对象”的过程7.27-线程-classclassThread.currentThread() 得到当前运行线程的对象td.setPriority() 设置线程优先级线程优先级别是从1-10的整数优先级越大的可能占用cpu的资源多些,但不是说线程优先级大的一定先获取cpu资源,主线程默认优先级是5。Synchronized 同步锁:在一些情况下如果多线程同时操作一个实例,由于操作系统的抢占式资源的方式所导致的数据错误,我们需要同步锁,同步锁有两种实现手段1. 同步代码块 可以锁任意对象2. 同步方法(非静态同步方法) 锁得是当前对象不管是同步方法还是同步代码块,观察锁得是不是同一个对象,如果锁得是同一个对象,哪个线程先对对象上了锁,其他线程虽然可以获取cpu资源但是无法使用被锁上的对象,只有当所对象的线程使用完该对象并释放后其他线程才可以使用该对象,这样达到有顺序的目的线程死锁:两条线程都拥有对方锁的对象,在这种情况下两条线程都等着对方放开锁的对象,谁也不会先放开,这样就造成了一种等待的现象,程序既不会停止也不会执行下去。Java中没有提供解决死锁的方法的,所以我们要避免死锁。线程的生命周期:/一个线程一旦启动了就不能再在连续的重复启动了否则或抛出异常/如果让在主线程中启动子线程,要让启动的代码放在主方法体的其他操作”的前面8.1 CSS&HTML-JavaScript-/alert(hello javascript);/EcmaScript javaScript的语法标准/BOMbowroser object modol 浏览器统一对象模型/DOMdocument object modol/JavaScript笔记/JavaScript使用var关键字定义变量,javaScript是一门弱类型的语言/在定义变量的时候用var修饰变量/循环 类似于java/for循环for(var i=0;i10;i+)alert(i);/while()循环/dowhile();循环8.7在JS中获取form元素的手段:document.getElementById();/很少用这个方法如果组件被form标签包围着可以使用document.formsindex,document.formname(formname为表单的name值)8.9-数据库-Show databases;显示数据库Create database 数据库名;创建数据库Use 数据库名;使用数据库表:是一个在文件中存储数据的结构Show tables;查看表Create table 表名(user_name(列名/字段名) 数据类型(可以有多个,用逗号隔开);创建表show databases;create database 数据名;use 数据库名;/使用数据库表:是一个在文件中存储数据的结构show tables;/查看表创建表create table 表名( 字段名 数据类型, . .)-修改-ALTER TABLE t1 RENAME t2;/修改表明alter table 表名 add id int(3);/修改表结构 给表添加一个新字段alter table 表名 chanage 老字段名 新字段名 数据类型/修改字段名字 8.11-异常-在捕获异常的时候,一个try后面可以跟多个catch,但是大异常要写在小异常的前面常见异常:NullpointerException 空指针异常 ArithmeticException 数学异常 NoSuchElementException 元素不存在异常 IndexOutOfBoundsException 数组下标越界异常 ConcurrentModificationException 并发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论