您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > JAVA尚学堂300集第一季笔记
第一季1、总共大约30小时。2、连载官网、JDK(java开发工具包)(JRE(java运行时环境)(JVM(JAVA虚拟机)))—包含关系4、java开发环境配置(1)下载JDK()步骤:oracle官网—Downloads—Java—JavaSE—JavaPlatform(DOWNLOAD)—AcceptLicenseAgreement—计算机(属性64位)—下载Windowsx64,(x86是32位)(2)安装JDK:选择默认路径即可,点击下一步。bin二进制缩写(3)环境变量设置:1)JAVA_HOME:C:\ProgramFiles\Java\jdk1.7.0_21步骤:点击计算机—属性—高级系统设置—高级—环境变量—找到JDK安装的默认路径复制C:\ProgramFiles\Java\jdk1.7.0_21—新建系统变量JAVA_HOME,变量值粘贴复制的默认路径2)path(执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件)步骤:找到bin文件的默认路径C:\ProgramFiles\Java\jdk1.7.0_21\bin将默认路径或“%JAVA_HOME%\bin”增加到path变量值最前面,用分号;将多个目录用隔开classpath——JDK5.0以上版本,可以不对其进行配置!3)测试是否安装成功:运行—cmd—输入java–version配置完java环境变量后,最好重启运行窗口。重启后新配置的环境变量才能生效。5、在E盘新建文件mycode(用于存放源代码文件),文件名为拼音或英文,如mycode,在mycode文件中新建文本文档Welcome,扩展名改为.java,类的首字母大写,类名与文件名一样,右键用记事本打开Welcome,编辑并保存。查看Welcome输出:运行—cmd—输入e:(进入E盘)—cdmycode(cd—changedirectory改变目录)—dir(查看mycode文件下所有文件和子文件)—javacWelcome.java(编译,编译器创建class字节码文件)—javaWelcome(执行)显示扩展名方法:在mycode文件夹中,组织—文件夹和搜索选项—查看—隐藏已知文件类型的扩展名,不打对钩文本编辑器:notepad++,UltraEdit,EditPlus集成开发环境:Eclipse()在记事本中首字母缩进按Tab键。6、JAVA注释//单行注释;/*…….*/多行注释;浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类——表示大小数;BigInteger类——表示大整数;7、eclipse下载:、包package:为了解决类之间的重名问题为了便于管理类:合适的类位于合适的包。package通常是类的第一句非注释性语句。包名:域名倒着写,再加上模块名,并与内部管理类,如:cn.shangxuetang.test写项目时都要加包,不要使用默认包。9、API文档用来查看所有的package以及class的用法。10、生成自己项目的API文档文档注释:/**,在所要注释的类前注释说明常用的java注释标签:@Author作者;@version版本;@param参数;@return返回值的含义;@throws抛出异常描述;@deprecated废弃。建议用户不在使用该方法。步骤:点击PackageExplorer里的项目名(如mypro)—右键Export—Java—Javadoc—下一步选中要生成API文档的项目名—改变Destination路径—finish—yesall。找到保存的API文档,打开index.html11、测试Scanner类的使用,如何接受键盘的输入importjava.util.Scanner:导入util包下的Scanner类//其他包的类如果要用,必须先导入Scanners=newScanner(System.in);Stringstr=s.next();//程序运行到next会阻塞,等待键盘的输入!—输入字符串inta=s.nextInt();//输入数字12、面向对象编程的本质:以类的方式组织代码,以对象的方式组织(封装)数据。13、构造器用于构造该类的实例;通过new关键字调用;构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return;如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果已定义则编辑器不会添加;构造器的方法名必须与类名一致;作用:构造该类的对象,经常也用来初始化对象的属性。14、方法的重载是指一个类中可以定义相同的名字,但参数不同的多个方法,调用时,会根据不同的参数表选择对应的方法。两同三不同:同一个类,同一个方法名;参数列表不同(类型、个数、顺序不同)15、static从属于类的只能使用类的方法,从属于对象的既可以使用类的方法也可以使用对象的方法。static只能调用static方法;非static既能调用static方法,也能调用非static方法。调用:类名.方法名;类名.类属性;16、this关键字:普通方法中,this总是指向调用该方法的对象;构造方法中,this总是指向正要初始化的对象;this不能用于static方法。this();——通过this调用其他无参的构造方法,必须位于第一句。17、面向对象的三大特征:继承,封装/隐藏,多态(为了适应需求的多种变化,使代码变得更加通用)Java中只有单继承(一个类只能有一个直接父类);java中的多继承,可以通过接口来实现。方法的重写:重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型,但是实现内容不一样。重写方法不能使用比被重写方法更严格的访问权限(由于多态)。重写与重载没关系18、Object类是所有Java类的根基类。如果在累的声明中未使用extends关键字指明其基类,则默认基类为Object类。Ctrl+t或F4查看某个类的层次结构,ctrl查看某个类的API文档19、super类是直接父类对象的引用;“is–a”关系实验继承;”has-a”关系使用组合。20、final关键字:修饰变量——(变为)常量;该方法不可被子类重写,但是可以被重载;修饰的类不能有子类,不能被继承。比如:Math、String21、封装:可见性—private—同一个类;default—同一个包中,同一个类;protected—子类,同一个包中,同一个类;public—所有类,子类,同一个包中,同一个类封装要点:类的属性的处理:(1)一般使用private(除非本属性确定会让子类继承)(2)提供相应的get/set方法来访问相关属性。这些方法通常是public,从而提供对属性的读取操作。(注意:boolean变量的get方法是用:is开头!)(3)一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public22、多态性:就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。java中实现多态:引用变量的两种类型——编译时类型(模糊一点,一般是一个父类)由声明时的类型决定;运行时类型(运行时,具体是哪个子类就是哪个子类)由实际对应的对象类型决定。多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象(如Animala=newCat();Animalb=newDog();Animalc=newPig();)。23、抽象类:是一种模版模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展。通过抽象类,可以避免子类设计的随意性。通过抽象类。我们就可以做到严格限制子类的设计,使子类之间更加通用。要点:有抽象方法的类只能定义成抽象类;抽象类不能实例化,即不能用new来实例化抽象类;抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用;抽象类只能用来继承;抽象方法必须被子类实现。抽象方法的意义在于:将方法的设计和方法的实现分离了。24、接口interface:接口中只有——常量、抽象方法。接口实现——implements。接口是最抽象的。接口中常量定义时,写或不写前缀都是默认有——publicstaticfinal接口中方法定义时,写或不写前缀都是默认有——publicabstract注意:接口就是比抽象类还抽象的抽象类,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想(如:如果你是天使,则必须飞)。接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的“不变”就是“规范”,因此,我们开发项目往往都是面向接口编程。某个接口可以支持继承多个接口。(interfaceAextendsInterfaceA,InterfaceB)25、CallBack回调、Hook勾子函数26、内部类(innerclasses)一般情况下,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类。内部类的作用:(1)内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。(2)内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不能访问内部类的内部属性。内部类的使用场合:由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。注意:1)普通的成员内部类可以访问外部类的普通的属性和方法。2)普通的成员内部类可以看作外部类的一个普通的属性。普通内部类对象必须寄宿在外部类对象里面。必须先有外部类对象,才能有内部类对象。3)静态内部类加了static修饰以后,静态内部类对象存在,它的外部类对象不一定存在,静态内部类不能访问外部类的普通的属性和方法,但是静态内部类可以直接访问外部类的静态的属性和方法。27、Array数组:创建数组对象——a=newint[4];初始化(对数组元素的初始化)默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样(如数字0,布尔false)。28、String:不可变字符序列!可变字符序列:StringBuilder(线程不安全,效率高,用的较多),StringBuffer(线程安全,效率低);两个用法一样。29、File类:Filef5=newFile(e:/mycode/aa/bb/cc/ddd);f5.mkdirs();//不管前面的父目录是否存在,都创建//f5.mkdir();如果前面的父目录存在,就创建,不存在就创建失败30、异常:Computerc=null;c.start();——出现NullPointerException//对象是null,调用了对象方法或属性不要在finally中使用return执行顺序:执行try,catch,给返回值赋值——执行finally——returnCtrl+t选中查看层次结构第二季32、泛型类:声明时使用泛型概念:泛型就是参数化类型,使用广泛的类型起因:数据类型不明确:装入数据的类型都被当作Object对待,从而“丢失”自己的实际类型。获取数据时往往需要转型,效率低,容易产生错误Object可以接受任意类型,因为发生多态获取值:1、强制类型转换2、手动类型检查:避免转换错误java.lang.ClassCastException:使用时确定类型(引用类型):1、安全:在编译的时候检查类型安全2、省心:所有的强制
本文标题:JAVA尚学堂300集第一季笔记
链接地址:https://www.777doc.com/doc-2881058 .html