![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
海边拾贝seebit
有广度,有深度,有灵魂的工程师
展开
-
注解
1. 注解概述从JDK5.0开始,Java增加了对元数据(描述数据的数据称之为元数据)的支持,也就是Annotation(注释)Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。Annotation可以像修饰符一样被使用,可用于修饰包,类,...原创 2018-07-08 00:08:16 · 215 阅读 · 0 评论 -
反射(三)之 获取并执行父类中定义的私有方法
一、获取当前类的父类:直接调用Class对象的getSuperClass()方法package test.com.atguigu.javase.lesson12; import org.junit.Test;/** * 获取当前类的父类 * 直接调用Class对象的getSuperClass()方法 * @throws Exception */public class GetSu...原创 2018-07-12 08:34:34 · 1391 阅读 · 0 评论 -
List
1. List概述List代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引List允许使用重复元素,可以通过索引来访问指定位置的集合元素List默认按元素的添加顺序设置元素的索引List集合里添加了一些根据索引来操作集合元素的方法 void add(int index, Object ele)boolean addAll(int index, Collecti...原创 2018-07-05 09:18:57 · 132 阅读 · 0 评论 -
反射(二)之 Method基础
一、反射概述1. Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。2. Java反射机制主要提供了以下功能在运行时构造任意一个类的对象在运行时获取任意一个类所具有的成员变量和方法在运行时调用任意一个对象的方法(属性)生成动态代理...原创 2018-07-11 18:18:43 · 159 阅读 · 0 评论 -
反射(一)之 Class类&ClassLoader
一、Class类1. 对象照镜子后可以得到的信息:某个类的数据成员名、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个类的有关信息。2. Class对象只能由系统建立对象3. 一个类在JVM中只会有一个Class实例4. 每个类的实例都会记得自己是由哪个Class实例所生成二、获取Class对象的方式1. 通过...原创 2018-07-11 11:49:13 · 240 阅读 · 0 评论 -
Set集合
1. Set集合Set集合不允许包含相同的元素,如果试把同个相同的元素加入同一个Set集合中,则添加操作失败。Set判断两个对象是否相同不是使用==运算符,而是根据equals方法2. HashSetHashSet是Set接口的典型实现,大多数时候使用Set集合时都使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。HashSe...原创 2018-07-04 14:03:38 · 171 阅读 · 0 评论 -
Random&Math
package test.com.atguigu.javase.lesson11; import org.junit.Test; import static java.lang.Math.*;import java.util.Random;/** * Random中封装了随机相关的方法:返回随机的基本数据类型的值 * Math中封装了常用的数学方法 * 静态导入:与一般导入相比...原创 2018-07-10 09:27:37 · 165 阅读 · 0 评论 -
Date&DateFormat
一、Date&DateFormat类1. Date类在java.util包中。使用Date类的无参构造方法创建的对象可以获取本地当前时间。2. SimpleDateFormat来实现日期的格式化3. public SimpleDateFormat(String pattern);该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:4. public String form...原创 2018-07-10 07:09:52 · 202 阅读 · 0 评论 -
StringBuilder&StringBuffer
一、StringBuilder VS StringBuffer1. StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法也一样2. String:不可变的字符序列3. StringBuilder:可变字符序列、效率高、线程不安全(常用)4. StringBuffer:可变字符序列、效率低、线程安全5. String使用陷阱: 5.1 String s ...原创 2018-07-09 19:29:42 · 119 阅读 · 0 评论 -
RandomAccessFile类
一. RandomAccessFile类介绍:1. RandomAccessFile类既可以读取文件内容,也可以向文件输出数据2. RandomAccessFile类支持“随机访问”的方式,程序可以直接跳到文件的任意地方来读写文件 2.1 支持只访问文件的部分内容 2.2 可以向已存在的文件后追加内容3. RandomAccessFile对象包含一个记录指针,用以标示当前读写出的位置。...原创 2018-07-09 17:04:22 · 128 阅读 · 0 评论 -
Collection所有方法汇总
Collection所有方法汇总package com.atguigu.javase.lesson7;import org.junit.Test;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/** * 1.添加元素 * 2.获取元素 & 查找指定...原创 2018-07-02 18:26:25 · 707 阅读 · 0 评论 -
Map
1. Map映射Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的Key,另外一组用于保存Map里的Value。Map存放键值对的集合。Map中的key和value都可以是任何引用类型的数据Map中的Key不允许重复,即同一个Map对象的任何两个Key通过equals方法比较都返回falseKey和Value之间存在单向一对一关系,即通过指定的Ke...原创 2018-07-05 14:42:52 · 123 阅读 · 0 评论 -
枚举
1. 枚举类概述在某些情况下,一个类的对象是有限而且固定的。例如季节类,只有四个对象手动实现枚举类 private修饰构造器属性使用private final修饰把该类的所有实例都使用 public static final 来修饰2. 示例代码package com.atguigu.javase.lesson9;public class Season { /...原创 2018-07-07 18:20:14 · 119 阅读 · 0 评论 -
泛型小结
1. 为什么需要泛型1.1 使用集合时可能会发生安全的问题:可以向集合中放入任何类型 1.2 麻烦:从集合中获取元素,需要进行类型的强制转换2. 使用泛型:使用泛型方法,泛型类。package test.com.atguigu.javase.lesson8; import com.atguigu.javase.lesson8.Person;import org.junit....原创 2018-07-07 10:50:29 · 126 阅读 · 0 评论 -
泛型方法
dao类:package com.atguigu.javase.lesson8;/** * 泛型类的声明 * 在类中凡是可以使用类型的地方都可以使用类中声明的泛型 */public class Dao<T> { public T get(int id){ T result = null; return result; ...原创 2018-07-07 07:59:25 · 128 阅读 · 0 评论 -
泛型和子类继承
package test.com.atguigu.javase.lesson8;import com.atguigu.javase.lesson8.Person;import com.atguigu.javase.lesson8.Student;import org.junit.Test;import java.util.ArrayList;import java.util.List;...原创 2018-07-06 18:34:19 · 627 阅读 · 0 评论 -
定义简单的泛型
Personpackage com.atguigu.javase.lesson8;/** * 泛型类的声明 * 在类中凡是可以使用类型的地方都可以使用类中声明的泛型 */public class Dao<T> { public T get(int id){ T result = null; return result; ...原创 2018-07-06 17:34:11 · 163 阅读 · 0 评论 -
泛型
package test.com.atguigu.javase.lesson8; import com.atguigu.javase.lesson8.Person;import org.junit.Test;import java.util.*;/** * GenericTest Tester.*/ public class GenericTestTest { /*...原创 2018-07-06 16:54:17 · 83 阅读 · 0 评论 -
Collections工具类
1. 操作集合的工具类:CollectionsCollections是一个操作Set、List和Map等集合的工具类Collections中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变,对集合对象实现同步控制等方法排序操作: reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(L...原创 2018-07-06 09:49:26 · 245 阅读 · 0 评论 -
Properties
1. Properties类Properties类时Hashtable的子类,该对象用于处理属性文件由于属性文件里的key、value都是字符串类型,所以Properties里的key和value都是字符串类型的...原创 2018-07-05 17:42:20 · 138 阅读 · 0 评论 -
TreeMap
TreeMap存储Key-Value对时,需要根据Key对key-value对进行排序。TreeMap可以保证所有的Key-Value对处于有序状态。TreeMap的Key的排序: 自然排序:TreeMap的所有的Key必须实现Comparable接口,而且所有的Key应该是同一个类的对象,否则将会抛出ClassCastException定制排序:创建TreeMap时,传入一个Compar...原创 2018-07-05 17:30:44 · 239 阅读 · 0 评论 -
HashMap&HashTable
1. HashMap&HashTableHashMap和HashTable是Map接口的两个典型实现类区别: Hashtable是一个古老的Map实现类,不建议使用Hashtable是一个线程安全的Map实现,但HashMap是线程不安全的Hashtable不允许使用null作为key和value,而HashMap可以与HashSet集合不能保证元素的顺序一样,Hashta...原创 2018-07-05 16:09:07 · 106 阅读 · 0 评论 -
Java集合概述
1. Java集合概述Java集合就像一种容器,可以把多个对象的引用放入容器中。Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组Java集合可分为Set、List和Map三种体系 Set:无序、不可重复的集合List:有序、可重复的集合Map:具有映射关系的集合在Java5之前,Java集合会丢失容器中所有对象的数据类型,把所有对象都当成Objec...原创 2018-07-02 14:35:35 · 137 阅读 · 0 评论 -
封装类
针对八种基本定义相应的引用类型——封装类 基本数据类型 封装类 boolean Boolean byte Byte short Short int Integer long Long char Character float Float double DoubleInte...原创 2018-06-20 14:09:54 · 136 阅读 · 0 评论 -
内部类
1. 匿名内部类对象在类的内部直接创建一个接口的一个实现类对象。2. 内部类在类的内部定义一个类,称为内部类。public class OuterClass{ private int i = 1; private String outerName; //在类的内部定义的类:内部类 class InnerClass{ private i...原创 2018-07-01 14:49:48 · 97 阅读 · 0 评论 -
IO流的分类
1. IO流的分类按流向分: 输入流输出流按处理的单位: 字节流(8位的字节)字符流(16位的字符)按流的角色 节点流:可以从一个特定的IO设备读/写数据的流处理流:对一个已存在的流进行连接和封装,通过封装后的流来实现数据读/写操作2. IO流体系 分类 字节输入流 字节输出流 字符输入流 字符输出流 抽象基类 InputS...原创 2018-07-08 08:42:05 · 234 阅读 · 0 评论 -
File类
File类File类代表与平台无关的文件和目录。FIle能创建、删除、重命名文件和目录,但FIle不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入流/输出流。访问文件名: getName();getPath();getAbsoluteFile();getAbsolutePath();getParent();renameTo(File newName);文件检测...原创 2018-07-08 08:14:41 · 151 阅读 · 0 评论 -
IO
概述输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。输出:将程序(内存)数据输出到磁盘、光盘等存储设备中。Java的IO流主要包括输入、输出两种IO流,每种输入、输出流都可分为字节流和字符流两大类。 字节流以字节为单位来处理输入、输出操作字符流以字符为单位来处理输入、输出操作...原创 2018-07-08 06:34:19 · 146 阅读 · 0 评论 -
接口(interface关键字)
1. 接口有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。...原创 2018-07-01 11:14:32 · 2706 阅读 · 0 评论 -
abstract关键字
1. 抽象类随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能过共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的示例,这样的类叫做抽象类。用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。抽象方法:只有方法的声明,没有方法的实现。以分号结束。 abstract...原创 2018-07-01 09:55:26 · 160 阅读 · 0 评论 -
final关键字
1. final关键字在Java中声明类、属性和方法时,可使用关键字final来修饰。final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。final标记的类不能被继承。提高安全性,提高程序的可读性。final标记的方法不能被子类重写。增加安全性。final标记的成员变量必须在声明的同时,或在每个构造方法中显示赋值,然后才能使用。2. 示例代码packag...原创 2018-07-01 08:15:28 · 105 阅读 · 0 评论 -
静态初始化
1. 静态代码块一个类中可以使用不包含在任何方法体中的静态代码块(static block),当类被载入时,静态代码块被执行,且只被执行一次,静态代码块经常用来进行类属性的初始化。2. static块通常用于初始化static(类)属性 3. 非静态代码块类似于的不带参数的构造器,每次都被执行。4. 参考资料static静态代码块与非静态代码块 + 构造函数博...原创 2018-06-30 19:11:58 · 4232 阅读 · 0 评论 -
类属性、类方法的设计思想
1. 设计原则类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设计为类属性。相应的方法设置为类方法。如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用。2. 示例 Account类:package com.atguigu.javase.lesson5;public...原创 2018-06-30 17:57:41 · 1107 阅读 · 0 评论 -
根父类Object
ObjectObject是所有类的根父类,如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类==和equals的区别==:引用类型比较引用(是否指向同一个对象);基本类型比较值用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错equals()方法是Object类的方法,由于所有类都继承Object类,也...原创 2018-06-18 20:57:05 · 313 阅读 · 0 评论 -
异常概述
1. Java异常任何一种程序设计语言设计的程序在运行时都有可能出现错误,例如除数为0,数组下表越界,要读写的文件不存在,网络中断等等。捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生。对于这些错误,一般有两种解决办法: 遇到错误就终止程序的运行。由程序员在编写编写程序时,就考虑到错误的检测、错误消息的提示,以及错误的处理。2. 异常异常:在Java语言中,将...原创 2018-07-01 16:10:02 · 155 阅读 · 0 评论 -
异常处理机制
在编写程序时,经常要在可能出现错误的地方加上检测的代码,如进行x/y运算时,要检测分为为0,数据为空,输入的不是数据而是字符等。过多的分支会导致程序的代码加长,可读性差。因此采用异常机制。Java异常处理:Java采用异常处理机制,将异常处理的程序代码集中在一起,与正常的程序代码分开,使得程序简洁,并易于维护。Java提供的是异常处理的抓抛模型。Java程序的执行过程中如出现异常,会自动...原创 2018-07-01 16:27:47 · 137 阅读 · 0 评论 -
人工抛出异常
1. 人工抛出异常Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要人工创建并抛出 首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。 IOException e = new IOException(); throw e;可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误:thro...原创 2018-07-02 10:36:45 · 425 阅读 · 0 评论 -
声明抛出异常
声明抛出异常时Java中处理异常的第二种方式 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。在方法声明中用throws关键字可以声明抛出异常的列表,多个异常用逗号分隔,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。重写方法不能抛出比被重写方...原创 2018-07-02 07:56:51 · 193 阅读 · 0 评论 -
对象流
1. 对象的序列化对象序列化的目标是将对象保存到磁盘上,或允许在网络中直接传输对象。序列化是RMI(Remote Method Invoke - 远程方法调用)过程的参数和返回值都必须实现的机制,而RMI是JavaEE的基础。因此序列化机制是JavaEE平台的基础如果需要让某个对象支持序列化机制,则必须让此类是可序列化的,为了让某各类是可序列化的,该类必须实现如下两个接口之一: Ser...原创 2018-07-09 07:23:21 · 130 阅读 · 0 评论 -
转换流
InputStreamReader和InputStreamWriter:只能把字节流转换为字符流,不能把字符流转换为字节流。public class IOTest{ /** * 先创建两个字节输入输出流:分别指向hello.txt,hello5.txt * 然后再转为字符输入输出流, * 再转为带缓冲的字符输入流 * 文件复制 */ ...原创 2018-07-08 18:28:16 · 102 阅读 · 0 评论