您的位置:首页 > 编程语言 > Java开发

java基础tips

2015-12-31 11:59 591 查看
1996年 JDK 1.02正式诞生 JAVA语言的特点: a)、简单:无指针、无运算符重载、无多继承b)、网络的c)、解释的d)(纯)面向对象的e)、体系中立的(不和任何硬件平台挂钩,字节码可以移植到任何机器而不受硬件的特性影 响)f)、健壮的g)、安全的(java中加入了垃圾回收机制)h)、可移植的(不同平台上数据长度一样,再加上JVM即可实现移植)java可移植的条件: 1、在不同的平台上,java的数据类型所分配的长度是确定的 2、字节码的长度是确定的(与平台无关) 3、不同硬件平台有不同的JVMjava源文件执行过程: 编译----》字节码----->>不同的OS java源文件 | 编译 字节码 |(非0、1形式) JVM1 JVM2 JVM3 ....... | | | | windows linux MAC others OS
*****不同的机器需要不同的虚拟机***************** JAVA平台的分类: | JAVA SE(核心类库) ----------标准版 | JAVA EE (企业开发) ----------企业版 | JAVA ME (微开发) ----------微型版 以上三种平台的划分依据是:对核心包的支持和8中基本数据类型的支持。JAVA SE : | JVM:解释执行自己饿吗文件(不可单独下载) | JRE(包含JVM)---是最小的下载单位(有版本之分) | JDK | java语言 三者关系: |java | [b] JDK[/b] | JRE |JVM******************一般浏览器会自带JVM,但支持不是太完全****************java tips:1、 在java中规定,一个源文件中可以有多个类,但是只能有一个公开(public)的类,而且公开的类的名字要与源文件的文件名相同,编译时源文件中有几个类就会生成几个字节码文件,字节码文件的名字与类名一致。2、java demo1 : 该命令做了以下事情: a)、启动了一个JVM进程 b)、默认到当前目录下找demo1.class(由ClassLoader加载) c)、由一个字节码校验器对字节码的安全进行审查 d)、由解释器去结合JRE解释字节码文件(JVM做了 b 、c、 d)
ClassPath: 为JVM指定寻找字节码文件的位置 Path: 指定CMD程序到哪里去找可执行的命令(多是外部命令)
方法:修饰符、返回值、方法名称、参数列表注意区分对象与引用 Student s = new Student() ; s是引用,而真正的对象是 new Student() .java中当一个类没有显示的给出构造方法时,系统会提供一个无参的构造方法,若认为提供了构造方法(无论是否有参数),系统都不会再提供构造方法。java中的封装:修饰符级别(private等)、 语句块级别、方法级别、类级别、包层次。封装的优点:隐藏具体的实现细节,防止对数据的未授权访问,保证数据的完整性。方法重载: 要求方法的参数列表必须不同(参数的顺序、个数、类型)***********java中导入jar包(java一般会自动导入lang包),只是导入该包的直接类,不会将该包的子包也导入,如导入一个包后还是找不到类,则徐考虑要用的类是否在该包的子包中。字符编码: 用一串二进制数表示特定的字符。UNIcode:占2个字节,是一种跨平台的字符编码,java采用的就是unicodejava中把char默认的当成无符号整数int 来处理。构造方法:系统调用构造方法时,会先给属性分配空间,且此值为默认的,然后再执行构造方法内部的初始化语句进行初始化。 构造方法表面上没有返回值,但实际是有返回值的,其返回构造的对象的句柄。 java中,局部变量使用前必须初始化,局部变量只能使用final修饰符。“==”:对于引用型而言,比较的是地址,及两个引用是否指向同一个对象,对于基本类型,比较的是他们的值是否相等。java继承: 创建对象子类对象时先创建一个父类对象,父类的非私有属性可以被子类继承,父类的方法不再适合子类时,子类可以对父类方法进行重写。构造子类对对象时会调用父类的默认无参的构造方法。Java中一个类只能继承自一个直接父类,即单继承,但接口可以多继承。引用类型的强制转换实质是一个还原的过程。方法覆盖时的要求: 1、访问权限不能缩小(可以放大,可以相同) 2、返回类型不能改变或者返回其子类 3、方法名称必须相同 4、参数列表必须相同 5、只能覆盖一次6、覆盖只能在子类中进行7、静态方法不存在覆盖(静态方法是专属与类的而不是某个对象)方法重载要求:1、修饰符没限制 2、返回值无限制3、方法名称必须相同 4、参数列表必须不同5、可以重载多次 6、只能在本类中 继承缺点:打破封装、容易受基类影响、父类的东西都拿过来(有些东西子类并不需要)
*********代码复用时首选合成(聚合) 1、private可以修饰属性、方法、构造方法但不能修饰类,被private修饰的有效范围是本类 2、default可以修饰属性、方法、构造方法和类,被其修饰的可以在同包类中使用 3、protected可以修饰属性、方法、构造方法、可以在本类中访问,可以在同包类中访问,可以在非同包类中子类中访问。**********************protected专门为继承而设计********************************** this、super的使用: this是在创建好对象之后,JVM分配的指向该对象自身的引用,可以利用其调用构造函数: this(参数),但这仅限与在构造方法。 super:可以调用父类的指定的构造方法,且只能在子类的构造方法的第一行语句中。*****一般子类的构造方法的第一行默认系统会调用父类的构造方法:super();子类的每一个构造方法中都有supre();****一个java类中属性的初始化的顺序: 1、父类的属性 2、父类初始化块 3、父类构造方法 4、子类属性 5、子类初始化块 6、子类构造方法当你使用一个类时,这个类就会被立刻加载进来静态方法中不可以访问实例属性及方法,但实例方法却可以访问静态方法、属性,静态方法不能使用this。对与初始化的顺序,永远是:先初始化父类静态的,然后是子类静态的属性,然后是父类的实例属性,最后是子类的实例属性。抽象类:1、抽象类与具体类的唯一区别是:抽象类不可以直接实例化2、一个继承了抽象类的类,如果实现了抽象类的所有抽象方法,则其变成一个具体类,而若只实现了部分抽象方法,则其必须声明为抽象类。3、抽象类中的方法可以全部是抽象方法,也可以全部是具体方法,也可以一半一半4、抽象类是一种类型5、内存中是存在抽象类的实例的6、抽象类是专用来继承的接口:接口是一个特殊的抽象类1、接口中声明的属性,系统会自动添加 public staic final修饰,表示该属性是一个公开的静态常量2、接口中声明的方法都是抽象方法,系统会默认添加abstract和public修饰符3、java中一个类只能直接继承一个类,但却可以同时实现多个接口,而接口之间却可以实现多继承
接口与抽象类的区别:
抽象类中可以有实例属性,且抽象类是有构造方法的,但接口是没有构造方法的。接口中可以什么都没有,这样的接口称为“标识”。异常处理:目的:异常是不能避免的,而处理异常是为了让程序平稳的结束,将损失减小到最低异常分类:运行时异常(未检查异常)和编译时异常(已检查异常),一般异常处理只针对运行时异常。处理异常:编程(通过条件过滤等措施避免)、try -catch、异常抛出(throws、throw)exit与finally及return的执行强度: exit(1) > finally > return 内部类:在一个类内部定义的类局部内部类(定义在方法中类)使用外部方法的局部变量时,要使用的局部变量一定必须是final类型。(定义成final后,虚拟机会将该final的变量拷贝一份给局部内部类,局部内部类实际使用的是自身的那一份拷贝 。)内部类:1、可以使用外部类的私有属性及方法2、每一个内部类都隶属于外部类3、成员内部类中不能有静态的东西4、内部类将接口公开,但实现类作为局部内部类隐藏起来,强制用户使用面向对象的编程5、内部类可以配合接口及抽象类正真实现多继承(内部类主要用途)(当一个接口和一个抽象类有一个同名的方法时,而一个具体类又必须实现并继承他们,此时必须使用内部类)。匿名内部类只是用一次,所以此种类没有构造方法,匿名类可以出现在方法的参数中,也可以出现在方法的返回值中。java集合:java的集合分为2个接口: collection、Map 对应关系: collection接口 有序可重复接口:List 无序不可重复接口:set LinkedList ArrayList HashSet 接口SortedSet TreeSet 接口Map HashMap SortedMap TreeMap集合操作:添加、删除、查找、遍历Java操作properties文件:读操作:1、获取流:FileInputStream 或者getResourceAsStream2、装载键值列表到新建的properties对象:load(流)3、操作键值(properties文件的操作还可以使用Resourcebuddle)Properties文件要放在classpath下(即java类或者库的存放路径),java工程中一般与类文件同目录即可,在web工程中最简单的是放在WEB-INF/classes目录下,也可放在其他目录下,此时需要指定目录的位置,即设置classpath的路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: