随笔分类 -  Java

摘要:本文主要是Java集合的概述和Set集合1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组就有点无能为力了;而且数组无法保存具有映射关系的数据。为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。2)Java集合类可用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等。还可以用于保存具有映射关系的关联数组。Java集合大致可以分为Set、List、Map三种体系,其中Set代表无序、不可重复的 阅读全文
posted @ 2013-08-31 00:06 Evan Liu 阅读(8431) 评论(0) 推荐(7) 编辑
摘要:1.String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列式不可改变的,直至这个对象被销毁。String s1 = "java";s1 = s1 + "android";s1 = s1 + "mysql";1)上面三个语句使用了3个字符串直接量之外,还会额外生成2个字符串直接量,"javaandroid","javaandroidmysql";程序中的s1依次指向3个不同的字符串对象。因为String是不可变的,所以会额外产生很多临时变量。2)使用StringB 阅读全文
posted @ 2013-06-22 20:18 Evan Liu 阅读(510) 评论(0) 推荐(0) 编辑
摘要:1.程序与用户交互(1)运行一个Java程序的时候要给它提供一个main方法入口,这边分析一下这个main方法的签名public static void main(String[] args);public修饰符:因为Java类给JVM调用的,所以要使用public修饰符暴露这个方法static修饰符:JVM调用主方法的时候不会先创建该主类的对象,而是直接通过该类来调用主方法的,所以使用static修饰。void返回值:因为主方法是JVM调用的,所以该方法的返回值返回给JVM没有任何意义。字符串数组形参:根据方法调用的规则,谁调用该方法,谁负责为形参赋值。所以是JVM赋值的,那到底是赋什么值呢 阅读全文
posted @ 2013-06-20 19:54 Evan Liu 阅读(1343) 评论(1) 推荐(0) 编辑
摘要:1.一个类的实例是有限且固定的,这个类称为枚举类。比如季节类,只有四个对象(春、夏、秋、冬)2.手动实现一个枚举类(1)通过private将构造器隐藏起来(2)把这个类的所有可能实例都使用private static final修饰的类变量来保存。(3)如果有必要,可以提供一些静态方法。package cn.it.lsl;public class Season { private final String name; private final String desc; private Season(String name, String desc){ this... 阅读全文
posted @ 2013-06-18 23:34 Evan Liu 阅读(4621) 评论(2) 推荐(0) 编辑
摘要:1.把一个类放在另一类内部定义,这个定义在其他类里面的类就叫做内部类,包含内部类的类叫做外部类。内部类成员可以直接访问外部类的私有数据,但是外部类不能访问内部类的实现细节。2.非静态内部类(没有static修饰的内部类)package cn.lsl;public class Cow { private double weight; public Cow(){} public Cow(double weight){ this.weight = weight; } private class CowLeg{ private doub... 阅读全文
posted @ 2013-06-17 21:23 Evan Liu 阅读(1067) 评论(4) 推荐(0) 编辑
摘要:这篇笔记主要是抽象类和接口,还有简单介绍下三种设计模式:模板模式、工厂模式、命令模式1.抽象方法和抽象类(1)抽象方法和抽象类都必须使用abstract修饰符来定义,包含抽象方法的类只能被定义成抽象类,抽象类里面可以没有抽象方法。抽象方法里面没有方法体。(2)抽象类不能被实例化,不能使用new关键字来调用抽象类的构造器来创建抽象类的实例,只能被当成父类来继承。package cn.lsl;public abstract class Shape { { System.out.println("抽象类的中的普通初始化块"); } private String col... 阅读全文
posted @ 2013-06-16 17:23 Evan Liu 阅读(1064) 评论(1) 推荐(0) 编辑
摘要:本篇笔记主要是final修饰符修饰类、成员变量、方法的用法,不可变类,实例缓存的不可变类final关键字可以用来修饰类、变量、方法。final变量不能重新赋值,子类不能覆盖父类的final方法,final类不能有子类。1.final修饰的成员变量(1)final修饰的成员变量一旦赋值后,不能被重新赋值。(2)final修饰的实例Field,要么在定义该Field的时候指定初始值,要么在普通初始化块或构造器中指定初始值。但是如果在普通初始化块中为某个实例Field指定了初始值,则不能再在构造器中指定初始值。(3)final修饰的类Field,要么在定义该Field的时候指定初始值,要么在静态代码 阅读全文
posted @ 2013-06-13 22:44 Evan Liu 阅读(9916) 评论(0) 推荐(2) 编辑
摘要:1.包装类1)包装类为基本数据类型提供了相应的引用数据类型。(基本数据类型-包装类)btye-Byte,char-Character,short-Short,float-Floatint-Integer,double-Double,long-Long,boolean-Boolean2)通过包装类的构造器来实现吧基本数据类型包装成包装类3)可以通过使用包装类的xxxValue()实例方法,可以获得包装类对象中包装的基本数据类型。package cn.it.lsl;public class Primitive2Wrapper { public static void main(String[... 阅读全文
posted @ 2013-06-12 14:54 Evan Liu 阅读(1850) 评论(0) 推荐(0) 编辑
摘要:1.多态1)Java引用变量的两种类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。当编译时类型和运行时类型不一致的时候,就可能产生多态package cn.it.lsl;class BaseClass{ public int book=6; public void base(){ System.out.println("父类方法"); } public void test(){ System.out.println("被子类覆盖的方法"); }}public cla... 阅读全文
posted @ 2013-06-10 14:31 Evan Liu 阅读(1168) 评论(0) 推荐(1) 编辑
摘要:面向对象的三大特征:封装、继承、多态1.访问控制符Java的访问控制符:private、protected、public,还有一个不加任何访问控制符的访问控制级别。四个控制级别由小到大:private、default、protected、publicprivate:当前类访问权限default:包访问权限,可以被相同包下的其他类访问protected:子类访问权限,既可以被同一个包中的其他类访问,也可以被不同包中的子类访问public:公共访问权限对于局部变量而言,其作用于就是它所在的方法,不能被其他类访问,所以不能使用访问控制符修饰。2.封装:将对象的状态信息对外部隐藏起来,不允许外部直接访 阅读全文
posted @ 2013-06-08 20:13 Evan Liu 阅读(1514) 评论(1) 推荐(3) 编辑
摘要:本篇笔记主要是成员变量、局部变量、构造器1.成员变量和局部变量1)成员变量:类范围内定义的变量成员变量有(1)类Field(有static修饰的),从这个类的准备阶段开始存在到这个类被完全销毁 访问方式:类.类Field 或 实例.类Field (2)实例Filed(没有static修饰的),从这个类的实例被创建开始存在,到这个实例被完全销毁 访问方式实例.实例Field如果通过实例.类Field的方式来修改类Field的值,那么其它实例来访问这个类Field时也将获得这个被修改过的值。 eg:package cn.it.lsl;class Person{ public ... 阅读全文
posted @ 2013-06-07 08:59 Evan Liu 阅读(1170) 评论(0) 推荐(0) 编辑
摘要:本篇笔记主要是方法传递机制、可变参数方法、递归方法、方法重载1.在Java语言里,方法不能独立存在,必须属于类或对象。一旦将一个方法定义在某个类中,如果这个方法有static修饰,则这个方法属于这个类,否则这个方法属于这个类的实例。2.在同一个类中,一个方法调用另外一个方法,如果被调用的是普通方法,则默认使用this作为调用者。如果被调用的方法是静态方法,则默认使用类作为调用者。3.方法的传递机制在方法调用时,如果声明的时包含了形参,那么调用方法是必须给这些形参指定参数值。在Java里方法的参数传递方式只能是值传递。即,就是将实际参数值得副本传入方法内,参数本身不会受到任何影响。eg:pack 阅读全文
posted @ 2013-06-05 22:40 Evan Liu 阅读(1030) 评论(2) 推荐(0) 编辑
摘要:1.类是java里面的重要内容,可以把类当成一种自定义数据类型,使用类来定义变量,这种类型的变量统称为引用变量。所以类是引用数据类型。2.面向对象中两个重要概念:类和对象。类是抽象的,对象是具体存在的。3.构造器是一个类创建对象的根本途径,如果一个类没有构造器,那么这个类通常无法创建实例创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。4.static关键字1)static可以用于修饰方法,Field等。static修饰的成员表明它属于这个类本身,而不属于该类的单个实例,通常把static修饰的Field和方法也称为类Field、类方法。不使用static修 阅读全文
posted @ 2013-06-05 10:18 Evan Liu 阅读(1525) 评论(0) 推荐(0) 编辑