JAVA尚学堂300集第一季笔记_第1页
JAVA尚学堂300集第一季笔记_第2页
JAVA尚学堂300集第一季笔记_第3页
JAVA尚学堂300集第一季笔记_第4页
JAVA尚学堂300集第一季笔记_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、精选文档第一季1、总共大约30小时。2、连载官网3、JDK(java开发工具包)(JRE(java运行时环境)(JVM(JAVA虚拟机))包含关系4、java开发环境配置(1)下载JDK(/technetwork/java/javase/downloads/index.html)步骤:oracle官网DownloadsJavaJava SEJava Platform(DOWNLOAD)Accept License Agreement计算机(属性64位)下载Windows x64,(x86是32位)(2)安装JDK:选择默认路径即可

2、,点击下一步。bin二进制缩写(3)环境变量设置:1)JAVA_HOME:C:Program FilesJavajdk1.7.0_21 步骤:点击计算机属性高级系统设置高级环境变量找到JDK安装的默认路径复制C:Program FilesJavajdk1.7.0_21新建系统变量JAVA_HOME,变量值粘贴复制的默认路径2)path(执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件)步骤:找到bin文件的默认路径C:Program FilesJavajdk1.7.0_21bin将默认路径或“%JAVA_HOME%bin”增加到path变量值最前面,用分号 ; 将多个目录

3、用隔开classpath JDK5.0以上版本,可以不对其进行配置!3)测试是否安装成功:运行cmd输入java version配置完java环境变量后,最好重启运行窗口。重启后新配置的环境变量才能生效。5、在E盘新建文件mycode(用于存放源代码文件),文件名为拼音或英文,如mycode,在mycode文件中新建文本文档Welcome,扩展名改为.java,类的首字母大写,类名与文件名一样,右键用记事本打开Welcome,编辑并保存。查看Welcome输出:运行cmd输入e:(进入E盘)cd mycode (cdchange directory改变目录)dir(查看mycode文件下所有文

4、件和子文件)javac Welcome.java(编译,编译器创建class字节码文件)java Welcome(执行)显示扩展名方法:在mycode文件夹中,组织文件夹和搜索选项查看隐藏已知文件类型的扩展名,不打对钩文本编辑器:notepad+,UltraEdit,EditPlus集成开发环境:Eclipse()在记事本中首字母缩进按Tab键。6、JAVA注释/单行注释;/*.*/多行注释;浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类表示大小数;BigInteger类表示大整数;7

5、、eclipse下载:/downloads/8、包package:为了解决类之间的重名问题为了便于管理类:合适的类位于合适的包。package通常是类的第一句非注释性语句。包名:域名倒着写,再加上模块名,并与内部管理类,如:cn.shangxuetang.test写项目时都要加包,不要使用默认包。9、API文档用来查看所有的package以及class的用法。10、生成自己项目的API文档文档注释:/*,在所要注释的类前注释说明常用的java注释标签:Author作者;version版本;param参数;return返回值的含义;throws抛出异常描述;depr

6、ecated废弃。建议用户不在使用该方法。步骤:点击Package Explorer里的项目名(如mypro)右键ExportJavaJavadoc下一步选中要生成API文档的项目名改变Destination路径finishyes all。找到保存的API文档,打开index.html11、测试Scanner类的使用,如何接受键盘的输入import java.util.Scanner:导入util包下的Scanner类/其他包的类如果要用,必须先导入Scanner s=new Scanner(System.in);String str=s.next();/程序运行到next会阻塞,等待键盘的输

7、入!输入字符串int a=s.nextInt();/输入数字12、面向对象编程的本质:以类的方式组织代码,以对象的方式组织(封装)数据。13、构造器用于构造该类的实例;通过new关键字调用;构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类) ,不能在构造器里调用return;如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果已定义则编辑器不会添加;构造器的方法名必须与类名一致;作用:构造该类的对象,经常也用来初始化对象的属性。14、方法的重载是指一个类中可以定义相同的名字,但参数不同的多个方法,调用时,会根据不同的参数表选择对应的方法。两同三不同:同一个类,同一个

8、方法名;参数列表不同(类型、个数、顺序不同)15、static从属于类的只能使用类的方法,从属于对象的既可以使用类的方法也可以使用对象的方法。static只能调用static方法;非static既能调用static方法,也能调用非static方法。调用:类名.方法名;类名.类属性;16、this关键字:普通方法中,this总是指向调用该方法的对象;构造方法中,this总是指向正要初始化的对象;this不能用于static方法。 this();通过this调用其他无参的构造方法,必须位于第一句。17、面向对象的三大特征:继承,封装/隐藏,多态(为了适应需求的多种变化,使代码变得更加通用)Java

9、中只有单继承(一个类只能有一个直接父类);java中的多继承,可以通过接口来实现。方法的重写:重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型,但是实现内容不一样。重写方法不能使用比被重写方法更严格的访问权限(由于多态)。重写与重载没关系18、Object类是所有Java类的根基类。如果在累的声明中未使用extends关键字指明其基类,则默认基类为Object类。 Ctrl+t或F4查看某个类的层次结构,ctrl查看某个类的API文档19、super类是直接父类对象的引用;“is a”关系实验继承;”has-a”关系使用组合。20、final关键字:修饰变量(变为)常量;该方法不可

10、被子类重写,但是可以被重载;修饰的类不能有子类,不能被继承。比如:Math、String21、封装:可见性private同一个类;default同一个包中,同一个类;protected子类,同一个包中,同一个类;public所有类,子类,同一个包中,同一个类封装要点:类的属性的处理:(1) 一般使用private(除非本属性确定会让子类继承)(2) 提供相应的get/set方法来访问相关属性。这些方法通常是public,从而提供对属性的读取操作。(注意 :boolean变量的get方法是用:is开头!)(3) 一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public2

11、2、多态性:就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。java中实现多态:引用变量的两种类型编译时类型(模糊一点,一般是一个父类)由声明时的类型决定;运行时类型(运行时,具体是哪个子类就是哪个子类)由实际对应的对象类型决定。多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象(如Animal a=new Cat();Animal b=new Dog();Animal c=new Pig();)。23、抽象类:是一种模版模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展。通过抽象类,可以避免子类设计的随意性。通过抽象类。我们就可

12、以做到严格限制子类的设计,使子类之间更加通用。要点:有抽象方法的类只能定义成抽象类;抽象类不能实例化,即不能用new来实例化抽象类;抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用;抽象类只能用来继承;抽象方法必须被子类实现。抽象方法的意义在于:将方法的设计和方法的实现分离了。24、接口interface:接口中只有常量、抽象方法。接口实现implements。 接口是最抽象的。接口中常量定义时,写或不写前缀都是默认有public static final接口中方法定义时,写或不写前缀都是默认有public abstract注意:接口就是比抽象类还抽象的抽

13、象类,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。接口就是规范,定义的是一组规则,体现了现实世界中“如果你是则必须能”的思想(如:如果你是天使,则必须飞)。接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的“不变”就是“规范”,因此,我们开发项目往往都是面向接口编程。某个接口可以支持继承多个接口。(interface A extends Interface A,Interface B)25、CallBack回调、Hook勾子函数26、内部类(innerclasses)一般情况下,我们把类定义

14、成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类。内部类的作用:(1) 内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。(2) 内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不能访问内部类的内部属性。内部类的使用场合:由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。注意:1) 普通的成员内部类可以访问外部类的普通的属性和方法。2) 普通的成员内部类可以看作外部类的一个普通的属性。普通内部类对象必须寄宿在外部类对象里面。必须先有外部类对象,

15、才能有内部类对象。3) 静态内部类加了static修饰以后,静态内部类对象存在,它的外部类对象不一定存在,静态内部类不能访问外部类的普通的属性和方法,但是静态内部类可以直接访问外部类的静态的属性和方法。27、Array数组:创建数组对象a = new int4;初始化(对数组元素的初始化)默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样(如数字0,布尔false)。28、String:不可变字符序列!可变字符序列:StringBuilder(线程不安全,效率高,用的较多),StringBuffer(线程安全,效率低);两个用法一样。29、File类:File f5=new

16、File(e:/mycode/aa/bb/cc/ddd);f5.mkdirs();/不管前面的父目录是否存在,都创建/f5.mkdir();如果前面的父目录存在,就创建,不存在就创建失败30、异常:Computer c=null; c.start();出现NullPointerException/对象是null,调用了对象方法或属性不要在finally中使用return执行顺序:执行try,catch,给返回值赋值执行finallyreturnCtrl+t 选中 查看层次结构第二季32、泛型类:声明时使用泛型概念:泛型就是参数化类型,使用广泛的类型起因:数据类型不明确:装入数据的类型都被当作O

17、bject对待,从而“丢失”自己的实际类型。获取数据时往往需要转型,效率低,容易产生错误Object可以接受任意类型,因为发生多态获取值:1、 强制类型转换2、 手动类型检查:避免转换错误 java.lang.ClassCastException:使用时确定类型(引用类型):1、 安全:在编译的时候检查类型安全2、 省心:所有的强制类型转换都是自动和隐式的,提高代码的重用率泛型类:定义类时使用泛型1) 格式:class类名修饰符 字母 属性;修饰符 构造器(字母)修饰符 返回类型 方法(字母)字母:T Type表示类型K V分别代表键值中的key ValueE 代表Element?表示不确定的

18、类型2)使用:指定具体类型1、编译时会进行类型检查2、获取数据时不需要强制类型转换注意:1、泛型只能使用引用类型,不能基本类型2、泛型声明时字母不能使用静态属性、静态方法上泛型接口:定义接口时使用泛型1、 格式:Interface接口名修饰符 返回类型 方法(字母);2、 因为不能使用在静态属性上,更不能用在全局常量上3、 接口中,泛型字母只能使用在方法中,不能使用在全局常量中泛型方法:定义使用:修饰符 返回类型 方法名(字母)要定义泛型方法,只需将于泛型参数列表置返回值前。泛型方法 返回类型前面只能访问对象的信息,不能修改信息注意:泛型还可以定义在方法中,是否拥有泛型方法,与其所在的类是否泛型没有关系。33、Hashtable与HashMap的区别/” ”空表示类的相对路径bin文件34、同步控制与只读控制:35

温馨提示

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

评论

0/150

提交评论