JAVA基础
SignificantOther
这个作者很懒,什么都没留下…
展开
-
XML的解析与生成
xml的文本格式请自行查看有关xml的文档。xml的解析与生成方式 Dom4j JDom xPath Sax DomDOM解析原理:一次性把xml文档加载成Document树,通过Document对象得到节点对象,通过节点对象访问xml文档内容(标签,属性,文本,注释)。 缺点: 不适合读取大转载 2017-10-05 17:28:15 · 265 阅读 · 0 评论 -
字节缓冲流BufferedInputStream,BufferedOutputStream
FileInputStream fis = new FileInputStream(srcPath); FileOutputStream fos = new FileOutputStream(destPath); // 使用缓冲流 BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputS转载 2017-08-22 22:52:47 · 222 阅读 · 0 评论 -
IO/OutputStream
1.import java.io.FileOutputStream; import java.io.IOException;public class IoTest2 { public static void main(String[] args) throws IOException { String path = “c:\a.txt”; writeT转载 2017-08-22 22:51:28 · 159 阅读 · 0 评论 -
IO/InputStream
1./** * 根据read方法返回值的特性,如果独到文件的末尾返回-1,如果不为-1就继续向下读。 * */ private static void showContent(String path) throws IOException { // 打开流 FileInputStream fis = new FileInputStream转载 2017-08-22 22:48:52 · 168 阅读 · 0 评论 -
IO流/File
new File(String pathname); 通过将给定路径来创建一个新File实例。 new File(String parent, String child); 根据parent路径名字符串和child 路径名创建一个新File实例。 new File(File parent, String child); 根据par转载 2017-08-22 22:43:35 · 156 阅读 · 0 评论 -
静态导入,增强for循环,可变参数,枚举类,自动装箱/拆箱
import static java.lang.System.out;//静态导入for(变量类型 变量 :需迭代的数组或集合){} for(String item:items){}//增强for循环public static int sum2(int… numbers)//可变参数 可变参数的细节 声明: 在一个方法中,最多只能有一个可变参数。 可变参数只转载 2017-08-22 22:31:49 · 160 阅读 · 0 评论 -
正则表达式
. 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好转载 2017-08-22 22:24:14 · 155 阅读 · 0 评论 -
JDK环境变量配置
JAVA_HOME 安装路径path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;原创 2017-08-17 13:10:45 · 159 阅读 · 0 评论 -
JDK解析
jdk目录1. bin目录:存放Java的编译器、解释器等工具(可执行文件)。2. db目录:JDK7附带的一个轻量级的数据库,名字叫做Derby。3. include目录:存放的调用系统资源的接口文件。4. jre目录:存放Java运行环境文件。5. lib目录:存放Java的类库文件。6. src.zip文件:JDK提供的类的源代码。原创 2017-08-17 13:13:42 · 200 阅读 · 0 评论 -
设置临时变量
set : 查看所有的环境变量信息。set 变量名 :查看具体一个环境变量的值。set 变量名=:清空一个环境变量的值。set 变量名=具体值 :给指定变量定义具体值。想要在原有环境变量值基础上添加新值呢?首先,通过%变量名%操作符获取到原有环境变量的值。然后加上新值后在定义给该变量名即可举例:给path环境变量加入新值set path=新值;%path%原创 2017-08-17 13:15:15 · 347 阅读 · 0 评论 -
CLASSPATH、JAVA_HOME的作用
JVM虚拟机相当于计算机系统(操作系统+硬件环境)jre = java虚拟机 + 核心类库(辅助java虚拟机运行的文件)jdk = jre + java开发工具CLASSPATH的作用: 作用是指定类搜索路径 1. 如果配置classpath环境变量信息没有加上分号,那么java虚拟机仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜原创 2017-08-17 13:19:20 · 322 阅读 · 0 评论 -
自定义标识符的规范
1. 类名和接口名单词的首字母大写,其他单词小写。 比如: RunTime.2. 变量名与方法名首单词全部小写,其他单词首字母大写,其他小写。 比如: doCook();3. 包名全部单词小写。4. 常量全部单词大写,单词与单词之间使用下划线分隔。 比如: UP_DIRECTION转载 2017-08-17 13:21:38 · 2785 阅读 · 0 评论 -
字符流,字符流的缓冲区,序列流
Reader reader = new FileReader(path1); Writer writer = new FileWriter(path2);Reader read = new FileReader(path); BufferedReader br = new BufferedReader(read); //合并两个流 private static void testSequen转载 2017-08-22 22:59:51 · 186 阅读 · 0 评论 -
对象的序列化,ObjectOutputStream
ObjectOutput writeObject(Object obj) 将对象写入底层存储或流。 ObjectInput readObject() 读取并返回对象。 成员变量标识为transient那么在序列化对象时,序列化就会跳过该变量。 被序列化的类必须是实现Serializable接口,该接口中没有描述任何的属性和方法,称之为标记接口转载 2017-08-22 23:05:31 · 292 阅读 · 0 评论 -
线程同步机制
class SaleTicket extends Thread{ static int num = 50;//票数 非静态的成员变量,非静态的成员变量数据是在每个对象中都会维护一份数据的。 static Object o = new Object(); public SaleTicket(String name) { super(name);}@Override转载 2017-09-23 09:48:57 · 187 阅读 · 0 评论 -
网络编程udp/tcp/tomcat
udp:要考虑数据包的大小,防止数据丢失。64K大小接收端:DatagramSocket socket = new DatagramSocket(9090); //准备空的数据包用于存放数据。 byte[] buf = new byte[1024]; DatagramPacket datagramPacket = new Datagram转载 2017-09-17 10:50:53 · 883 阅读 · 0 评论 -
路径
如果经常会发生变化的数据我们可以定义在配置文件上。 比如说:数据库的用户名与密码。配置文件的路径应该如何写 呢?绝对路径:一个文件的完整路径信息。一般绝对路径是包含有盘符 的。 绝对路径的缺陷: 因为绝对路径是有盘符开头的,有些系统是没有盘符的。相对路径: 相对路径是相对于当前程序的路径。当前路径就是执行java命令的时候,控制台所在的路径。类文件路径 :类文件路径就是使用了classpath的路转载 2017-09-24 20:49:22 · 180 阅读 · 0 评论 -
Java的内省
实体类Bean,不再写出import java.io.BufferedReader;/*需求: 编写一个工厂方法根据配置文件的内容,工厂方法返回对应的对象,并且把对象要有对应的属性值。 */import java.io.FileReader;import java.lang.reflect.Constructor;import java.lang.reflect.Field;public转载 2017-09-24 16:01:09 · 202 阅读 · 0 评论 -
Java反射
反射: 当一个字节码文件加载到内存的时候,jvm会对该字节码进行解剖,然后会创建一个对象的Class对象,把字节码文件的信息全部都存储到该Class对象中,我们只要获取到Class对象,我们就可以使用字节码对象设置对象的属性或者调用对象的方法等操作…. 注意: 在反射技术中一个类的任何成员都有对应 的类进行描述。 比如: 成员变量(Field) 方法—-> Method类 ***对象Ob转载 2017-09-23 23:08:15 · 141 阅读 · 0 评论 -
LinkedList实现堆栈数据结构的存储方式与队列的数据结构存储方式
1:栈 (1.6) : 主要是用于实现堆栈数据结构的存储方式。 先进后出 push() pop()2:队列(双端队列1.5): 主要是为了让你们可以使用LinkedList模拟队列数据结构的存储方式。 先进先出 offer() poll()// 使用LinkedList模拟堆栈的数据结构存储方式class StackList{ Linke转载 2017-09-23 20:59:31 · 430 阅读 · 0 评论 -
entrySet/keySet/entry
keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry keySet()的速度比entrySet()慢了很多 使用entrySet则必须将map对象转换为Map.Entry,keySet则不需要package cn.itcast.map;import java.util.ArrayList;class Map{转载 2017-09-23 20:53:34 · 327 阅读 · 0 评论 -
Map集合的遍历方式
Map<String,String> map = new HashMap<String, String>(); //添加方法 map.put("汪峰", "章子怡"); map.put("文章", "马伊琍"); map.put("谢霆锋","张柏芝"); map.put("成龙", "林凤娇"); /*转载 2017-09-23 18:39:35 · 195 阅读 · 0 评论 -
内存泄漏/溢出/垃圾回收
模拟堆栈,无垃圾回收,一直添加元素,造成内存溢出class StackList{ Object[] elements; int index = 0 ; //当前的索引值 public StackList(){ this.elements = new Object[3]; } //添加内容 public void add(Object o){转载 2017-09-23 16:30:57 · 209 阅读 · 0 评论 -
对象的克隆
1.浅克隆对象浅克隆要注意的细节: 1. 如果一个对象需要调用clone的方法克隆,那么该对象所属的类必须要实现Cloneable接口。 2. Cloneable接口只不过是一个标识接口而已,没有任何方法。 3. 对象的浅克隆就是克隆一个对象的时候,如果被克隆的对象中维护了另外一个类的对象,这时候只是克隆另外一个对象的地址,而没有把 另外一个对象也克隆一份。转载 2017-09-23 15:39:30 · 168 阅读 · 0 评论 -
login和downloadImage网络编程范例
public class LoginClinet {public static void main(String[] args) throws IOException { Socket socket = new Socket(InetAddress.getLocalHost(),9090); //获取socket的输出流对象 OutputStreamWriter转载 2017-09-23 10:40:18 · 602 阅读 · 0 评论 -
Properties
可以和流相关联的集合对象Properties. Map |–Hashtable |–Properties Properties:该集合不需要泛型,因为该集合中的键值对都是String类型。 Properties prop = System.getProperties(); // prop.list(System.out);// 目的是控制台。 /转载 2017-09-23 10:35:03 · 151 阅读 · 0 评论 -
JAVA注释
注释的类别:第一种: 单行注释。 // 注释的内容第二种: 多行注释。 /* 注释的内容 */第三种: 文档注释. /** 注释的内容 */ javadoc -d 存放文档的路径 java的源文件 使用javadoc工具要注意细节:1. 如果一个类需要使用javadoc工具生成一个软件的开发者文档,那么转载 2017-08-17 13:23:49 · 151 阅读 · 0 评论 -
布尔类型的字节
布尔类型: 布尔类型只有两个 值,true或者false。boolean 1字节或者4个字节 如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节,如果使用boolean声明一个数组类型的时候,那么每个数组的元素占一个字节。转载 2017-08-17 13:42:08 · 8638 阅读 · 3 评论 -
数据类型强制转换+号前后的区别
short s = 3; s = s+2;//数据类型强制转换 s+=2, //数据类型没有强制转换转载 2017-08-17 13:44:27 · 303 阅读 · 0 评论 -
继承要注意的事项
1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承。2. 父类私有的成员不能被继承。3. 父类的构造函数不能被继承。4. 创建子类对象时默认会先调用父类无参的构造函数。5. 调用父类的构造方法是可以初始化从父类继承下去的属性的。转载 2017-08-20 11:17:49 · 178 阅读 · 0 评论 -
super关键字,this关键字,及其两者区别.final关键字
super关键字代表了父类空间的引用。super关键字的 作用:1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。super关键字调用父类构造方法要注意的事项:1. 如果在子类的构造方法上没有指定调用父类的构造方法,那么j转载 2017-08-20 11:18:53 · 328 阅读 · 0 评论 -
方法重写要注意的事项
1.方法重写时, 方法名与形参列表必须一致。2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。 Exception(最坏) RuntimeException(小坏)转载 2017-08-20 11:22:32 · 1012 阅读 · 0 评论 -
内部类和外部类
内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便成员内部类静态转载 2017-08-20 11:23:49 · 344 阅读 · 0 评论 -
多态及其多态类型转换
1、多态是建立在继承的基础上,有两种方式,一是引用的多态,二是方法的多态2、细分:引用的多态仅有两种,父类指向自己或者子类。但是绝不可以子类的引用指向父类;方法的多态存在三种,第一种是当父类引用指向自己的时候访问重写的方法是访问父类的,第二种是父类引用指向子类的时候访问重写的方法是访问子类的,第三种如果子类没有重写的方法,此时父类引用指向子类,虽然访问了方法,但是结果依旧是指向父类转载 2017-08-20 11:29:05 · 678 阅读 · 0 评论 -
抽象类,接口,匿名对象
1、应用场景:a、在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法精确知道这些子类如何实现这些方法(抽象类只约束子类有哪些方法,并不关注具体是怎么实现的)b、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性2、作用(目的):限制规定子类必须实现某些方法,但不关注细节抽象类使用规则1、abstract定义抽象类2转载 2017-08-20 11:32:17 · 558 阅读 · 0 评论 -
运行时异常和编译时异常
运行时异常: 如果一个方法内部抛出了一个运行时异常,那么方法上可以声明也可以不声明,调用者可以以处理也可以不处理。编译时异常(非运行时异常、受检异常): 如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而且调用者也必须要处理。转载 2017-08-20 11:39:14 · 302 阅读 · 0 评论 -
字符串概述
String Str = “jack”创建字符串的时候,jvm首先会检查字符串常量池中是否存在该字符串的对象,如果已经存在,那么就不会在字符串常量池中再创建,直接返回该字符串在字符串常量池中的内存地址。如果该字符串还不存在字符串常量池中,那么就会在字符串常量池中先创建该字符串的对象,然后再返回。String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符转载 2017-08-20 11:40:56 · 160 阅读 · 0 评论 -
线程
线程负责了代码 的执行,我们之前没有学过线程,为什么代码可以执行呢?运行任何一个java程序,jvm在运行的时候都会创建一个main线程执行main方法中所有代码。一个java应用程序至少有几个线程?至少有两个线程, 一个是主线程负责main方法代码的执行,一个是垃圾回收器线程,负责了回收垃圾。创建线程的方式: 方式一:1. 自定义一个类继承Thread类。2.转载 2017-08-21 09:04:26 · 182 阅读 · 0 评论 -
集合
List集合操作跟索引值有关; 疑问:iterator()方法返回的是一个接口类型,为什么接口又可以调用方法可以使用呢? iterator 实际 上返回的是iterator接口的实现类对象。迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。Iterator 方法 h转载 2017-08-21 09:05:49 · 168 阅读 · 0 评论 -
泛型
自定义泛型: 自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。 方法上自定义泛型: 修饰符 返回值类型 函数名(使用自定义泛型 ...){ }在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型。 byte----> Byte short---> Short int-转载 2017-08-21 09:10:31 · 155 阅读 · 0 评论