11 2016 档案

摘要:通过反射创建对象 通过反射创建对象有两种方式,一种通过Class对象的newInstance()方法,一种是获取到Class对象的Constructor后,再调用newInstance()方法,前者要求对应类有默认的无参构造器,后者则可以用特定的的构造器 前者用得较多,很多Java EE框架中都用x 阅读全文
posted @ 2016-11-30 17:27 sonng 阅读(367) 评论(0) 推荐(0)
摘要:先看看通过反射能干嘛 示例:修改对象的private实例变量 上面的示例中,虽然age和name被private修饰,但还是被修改了,那这岂不是很不安全,违背了封装的初衷?我也不知道 java.lang.class 有一个类很特别,它是所有类的类,它就是java.lang.class 要使用一个类的 阅读全文
posted @ 2016-11-30 11:22 sonng 阅读(314) 评论(0) 推荐(0)
摘要:JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器、堆栈、寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹配JVM对载入编译文件格式要求,任何语言都可以交由JVM运行,比如Scala、Groovy、Fant 阅读全文
posted @ 2016-11-28 17:05 sonng 阅读(428) 评论(0) 推荐(0)
摘要:第01章 计算机、程序和Java概述 第02章 基本程序设计 第03章 选择 第04章 数学函数、字符和字符串 第05章 循环 第06章 方法 第07章 一维数组 第08章 多维数组 第09章 对象和类 第10章 面向对象思考 第11章 继承和多态 第12章 异常处理和文本I/O 第13章 抽象类和 阅读全文
posted @ 2016-11-25 19:33 sonng 阅读(1805) 评论(0) 推荐(0)
摘要:垃圾回收特点 垃圾:程序运行过程中,会为对象、数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制只回收 中的对象,不回收数据库连接、IO等资源,所以才要在finally中关闭 要回收,但什么时候回 阅读全文
posted @ 2016-11-24 15:08 sonng 阅读(387) 评论(0) 推荐(0)
摘要:可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如 "单例类" 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象;还有就是枚举类。 创建少数几个对象,不用枚举类实现 创建少数几个对象,用枚举类改写 枚举类 枚举类的关键字是enum,跟class 阅读全文
posted @ 2016-11-23 17:48 sonng 阅读(373) 评论(0) 推荐(0)
摘要:匿名内部类与Lambda表达式示例 下面代码来源于: "0027 Java学习笔记 面向对象 (非静态、静态、局部、匿名)内部类" 下面用Lambda表达式改写 Lambda表达式的基本结构 + 形参列表:()圆括号部分 形参列表位于圆括号中 形参类型允许省略:上面代码中省略"int[]"也是可以的 阅读全文
posted @ 2016-11-22 20:53 sonng 阅读(618) 评论(0) 推荐(1)
摘要:内部类 内部类就是把一个类写在另一个类的内部 用途: + 如果一个类只希望它被某一个类访问,那么可以把它定义在另一个类的内部,并用private修饰 + 内部类可以访问它所在外部类的private成员;但所在的外部类的成员不能直接访问内部类的数据 + 内部类适合于创建那些仅需要一次使用的类 内部类除 阅读全文
posted @ 2016-11-21 17:24 sonng 阅读(386) 评论(0) 推荐(0)
摘要:抽象方法与抽象类 抽象方法用abstract修饰,没有方法体部分,连花括号都不能有; 抽象方法和抽象类都用abstract修饰 包含抽象方法的类一定是抽象类;但不包含抽象方法的类也可以是抽象类 不能创建抽象类的实例,抽象类里可以有构造方法,但只是用来给子类调用的 抽象类可以包含类的5大要素:成员变量 阅读全文
posted @ 2016-11-21 10:45 sonng 阅读(375) 评论(0) 推荐(0)
摘要:final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 + 类变量: + 实例变量: + : 注意可以修饰形参 + 局部变量 修饰方法:该方法不可被重写 final修饰成员变量 final修饰成员变量,必 阅读全文
posted @ 2016-11-18 18:33 sonng 阅读(647) 评论(0) 推荐(0)
摘要:包装类 基本类型 包装类 + byte Byte + short Short + int Integer + long Long + char Character + float Float + double Double + boolean Boolean 基本类型转为包装类型: + 自动装箱Au 阅读全文
posted @ 2016-11-18 00:03 sonng 阅读(428) 评论(0) 推荐(0)
摘要:初始化代码块 在18篇 类的基本要素中说到,类的三大成员:成员变量、构造方法、方法,初始化代码块是类的第4个成员 初始化块用于对类或者对象的初始化, 一个类的初始化块可以有0~多个,按先后顺序执行 跟实例方法 类方法、实例变量 类变量一样,也可以用static修饰初始化块,静态初始化块 非静态初始化 阅读全文
posted @ 2016-11-17 15:27 sonng 阅读(838) 评论(0) 推荐(0)
摘要:继承的特点 单继承:每个子类最多只有一个直接父类,注意是直接父类,间接父类个数不限 注意父类的概念:A B C D,在这里,ABC都是D的父类,C是D的直接父类,AB是D的间接父类 父类和子类是一般和特殊的关系;子类扩展了父类,子类是一种特殊的父类 Object是所有类的直接或间接父类;定义一个类时 阅读全文
posted @ 2016-11-17 11:12 sonng 阅读(349) 评论(0) 推荐(0)
摘要:封装 面向对象的三大特征: + 封装 + 继承 + 多态 封装: + 将对象的状态信息隐藏,不允许外部程序直接访问 + 通过该类提供的方法来访问和操作 有啥用: + 隐藏类的实现细节 + 在方法中加入控制逻辑,限制对成员变量的不合理访问,比如把年龄设置为1000岁 + 进行数据检查,有利于保证对象信 阅读全文
posted @ 2016-11-16 16:03 sonng 阅读(296) 评论(0) 推荐(0)
摘要:变量分为哪些 成员变量:类里面,方法外面定义的变量 + 实例变量:没有用static修饰的变量,属于对象;存在期:创建实例~销毁实例;作用域:与该实例的生存范围相同 + 类变量:用static修饰的变量,属于类;存在期:类的准备阶段~销毁该类;作用域:与类的生存范围相同 局部变量: + 形参:方法签 阅读全文
posted @ 2016-11-16 11:58 sonng 阅读(291) 评论(0) 推荐(0)
摘要:方法属于谁 方法要么属于类,要么属于对象 static修饰的方法属于类 没有static修饰的方法属于对象 方法只能定义在类里面,不能独立定义 不能独立的执行方法,要么通过类调用,要么通过方法调用 一个类里,一个方法调用另一个方法,看似没有调用者,实际上对于非static方法使用this调用,sta 阅读全文
posted @ 2016-11-16 10:37 sonng 阅读(307) 评论(0) 推荐(0)
摘要:类与对象 大街上一个个的人,就是一个个对象 类是对一群对象的抽象,比如人都有性别、年龄、姓名,都会吃饭、睡觉等。姓名性别可以抽象为变量,吃饭睡觉可以抽象为方法,像下面一样定义个类来形容人 类的修饰符 上面代码第一行的"public"是类的修饰符 类的修饰符可以有public、final、abstra 阅读全文
posted @ 2016-11-15 19:06 sonng 阅读(979) 评论(0) 推荐(0)
摘要:几个概念 桶(bucket):hash表里可以存储元素的位置 hash冲突:equals()返回false的不相等对象的hashCode()值相等,意味着一个bucket要放几个元素 容量(capacity):hash表中桶(bucket)的数量 初始化容量(initial capacity):创建 阅读全文
posted @ 2016-11-15 15:19 sonng 阅读(354) 评论(2) 推荐(1)
摘要:上午在搜索"System.runFinalization"的时候,搜到 "http://www.cnblogs.com/Skyar/p/5962253.html" ,其中有关于try catch finally的部分,特整理如下 先看下面这个方法的返回值 执行过程 1. 执行try块:执行中抛出一个 阅读全文
posted @ 2016-11-15 14:57 sonng 阅读(689) 评论(0) 推荐(0)
摘要:主要的方法 构造方法: + TreeMap(); + TreeMap(Comparator comparator); + TreeMap(Map m); + TreeMap(SortedMap m); 方法: + Map.Entry firstEntry(); + Object firstKey() 阅读全文
posted @ 2016-11-15 12:03 sonng 阅读(288) 评论(0) 推荐(0)
摘要:主要的方法 + 构造方法: HashMap(); 默认大小16,负载因子0.75 HashMap(int initialCapacity); HashMap(int initialCapacity,float loadFactor); HashMap(Map v); + 方法: void clear 阅读全文
posted @ 2016-11-15 09:48 sonng 阅读(404) 评论(0) 推荐(0)
摘要:static可以修饰哪些成员 成员变量 可以修饰 构造方法 不可以 方法 可以修饰 初始化块 可以修饰 内部类(包括接口、枚举) 可以修饰 总的来说:静态成员不能访问非静态成员 静态变量 static修饰的变量为静态变量 在创建对象时,静态变量位于方法区中,而非像实例变量一样,位于堆内存中 一个类的 阅读全文
posted @ 2016-11-15 09:24 sonng 阅读(499) 评论(0) 推荐(0)
摘要:00 准备工作 1. 到VirtualBox官网下载Oracle VM VirtualBox 5.1.8:https://www.virtualbox.org/wiki/Downloads 2. 到centos官网下载CentOS7:https://wiki.centos.org/Download 阅读全文
posted @ 2016-11-09 20:32 sonng 阅读(457) 评论(0) 推荐(0)