
java
悠悠华
这个作者很懒,什么都没留下…
展开
-
java学习 log4j日志
第一步,在项目中导入log4j的jar包,并导入工程路径链接:https://pan.baidu.com/s/1slvqTIpwizIwT0CRaJFmgg 密码:vys8第二步,在src目录下创建log4j.properties内容如下:### \u8BBE\u7F6E###log4j.rootLogger = debug,stdout,D,E### \u8F93\u...原创 2018-09-14 20:52:20 · 278 阅读 · 0 评论 -
Java学习 Set集合怎么保证数据的不重复
我们都知道Set集合不能包含重复数据,那么Set是怎么保证数据不重复,怎么比较要加入的数据到底和已加入的数据以及不同数据的定义是什么? public class HashSetDemo {public static void main(String[] args) {// TODO 自动生成的方法存根HashSet hs = new HashSet();Person p1 = new Person...原创 2018-06-28 08:39:29 · 10554 阅读 · 0 评论 -
Java学习 UDP网络编程 发送端与接收端
发送端:public class SendDemo{ public static void main(String[] args) throws IOException { /* * 创建UDP发送端的步骤 * 1,创建UDP的socket服务 * 2,将要发送的数据封装在数据包中 * 3,通过UDP的socket服务将数据包发送出去 * 4,关闭sock...原创 2018-07-08 14:24:10 · 289 阅读 · 0 评论 -
Java学习 Map接口
Map集合 一次添加一对元素 Collection一次添加一个元素Map也称为双列集合 Collection集合也被称为单列集合Map集合存储的是键值对 并且必须保证键的唯一性常用方法: 1,添加 value put(key,value) 返回和前一个key关联的值,如果没有则返回null 比如:第一次传入k1,v1 之后又...原创 2018-07-30 15:33:07 · 121 阅读 · 0 评论 -
Java学习 TreeSet比较器
TreeSet:可以对Set集合的元素进行排序,是不同步的 判断元素唯一性的方法时根据比较方法的返回结果是否是0,如果是0就是相同元素 TreeSet对元素进行 需要将要排序的类实现Comparable并覆盖compareTo方法 如果不要按照对象的自然顺序进行排序,如果对象中不具备自然顺序 那么可以使用TreeSet集合的第二种排序方式 让集合自身具...原创 2018-06-26 11:20:20 · 499 阅读 · 0 评论 -
Java学习 FIleReader类
需求:读取一个文本文件,将读取的文件读取到控制台 创建读取字符数据的流对象 在创建流对象是 必须确保被读取的文件 一定要存在 用Reader的read方法读取字符 使用FileReader生成流对象read()函数: 作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1 一次只能...原创 2018-06-29 21:39:29 · 272 阅读 · 0 评论 -
Java学习 多线程的创建
我们之前所学的程序都是单线程的,都是按照main函数这一条线索执行。这样在有些环境下就显得比较笨拙。这样引进了多线程,如其名,多个线程就是多条线索。提到线程就不得不提到进程。我们可以把进程想像成应用程序比如听歌软件,线程就是里面的功能,听歌软件功能实现 需要依附于听歌软件,线程一样需要依附于进程。单线程相当于听歌软件打开后只能听歌,多线程相当于是边听歌边找歌曲。java支持多线程,java提供了T...原创 2018-06-12 10:13:25 · 126 阅读 · 0 评论 -
Java学习 Object类
Object类是java所有类的父类或间接父类,所有类都继承了Object类的方法下面是Object类常用的方法equals方法:下面是equals的源代码public boolean equals(Object obj) { return (this == obj); }这个方法是检测两个对象是否相等的方法,但是Object中的方法检测对象相等的依据是这两个对象的内存地址在这...原创 2018-06-08 15:22:28 · 158 阅读 · 0 评论 -
Java学习 集合框架之Collection 通用函数方法
java.util集合特点: 集合长度可变 集合中不可以存储基本数据类型Collection是顶层接口,他的方法都需要熟悉添加的方法:boolean add(Object obj) //添加任意类型的元素boolean addAll(Collection c) //将集合类型整体添加进去删除的方法:boolean remove(Object...原创 2018-06-23 19:52:07 · 239 阅读 · 0 评论 -
Java学习 StringBuffer类
StringBuffer就是字符串缓冲区 特点:1,长度可变 2,可以存储不同类型的数据 3,最终还是转化成字符串 4,可以对字符串进行修改功能:1,添加:StringBuffer append(data) //任意类型的数据 StringBuffer inser...原创 2018-06-22 14:08:57 · 129 阅读 · 0 评论 -
Java学习 查找两个字符串中的最大子串
public static String getMaxSubString(String str1,String str2) { String max = null,min = null; if(str1.length()>str2.length()) //先区分出大串和小串 { max = str1; min = str2; } else ...原创 2018-06-22 09:51:11 · 923 阅读 · 0 评论 -
Java学习 内部类
内部类特点:内部类相当于外部类的一个成员,可以访问外部类的所有其他成员外部类如果想要访问内部类需要创建内部类对象。class Outer //外部类{ private int num = 10; //外部类的私有成员 class Inner //内部类...原创 2018-06-06 12:22:23 · 272 阅读 · 0 评论 -
Java学习 System类 Runtime类 Math类 Date类 Calendar类
System是不能实例化的 所有的属性和方法都是静态的常见方法: long xurrentTimeMillis() 获取当前时间的毫秒值 Public static Properities getProperties();确定当前系统属性properties集合中存储的都是String类型的键和值Runtime类------------------------------------...原创 2018-06-29 08:41:59 · 185 阅读 · 0 评论 -
Java学习 IO FileWriter类
字节流的两个顶层父类: 1,InputStream 2,OutputStream字符流的两个顶层父类: 1,Reader 2,Writer需求::将一些文字存储到硬盘中一个文件中:如果要操作文字数据优先考虑字符流 要将数据存储到硬盘上 需要字符流中的输出流创建一个可以往文件中写入字符数据的字符输出流对象既然是往一个文件中写入文字数据 那么在创建对象时,就必须明确该文...原创 2018-06-29 14:08:56 · 321 阅读 · 0 评论 -
Java学习 TCP通信
服务端: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class Ser...原创 2018-08-08 16:18:08 · 169 阅读 · 0 评论 -
Java学习 IO转换流
键盘读取输入输出:public static void main(String[] args) throws IOException { //字节输入流 InputStream in = System.in; //转换流 将字节流转换成字符流 InputStreamReader isr = new InputStreamReader(in); //装饰者模式 使用...原创 2018-08-03 20:18:57 · 140 阅读 · 0 评论 -
Java学习 编码解码
字符串--->字节数组:编码字节数组--->字符串:解码 String str = "汤姆"; //编码 默认编码格式是GBK byte[] buf = str.getBytes(); for(byte b : buf){ System.out.print(b+" "); }结果:-52 -64 -60 -73 ...原创 2018-08-06 15:11:50 · 221 阅读 · 0 评论 -
Java学习 IO管道流 基本类型数据的流
IO管道流 public class Demo { public static void main(String[] args) throws IOException, ClassNotFoundException { PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedO...原创 2018-08-06 14:17:25 · 177 阅读 · 0 评论 -
Java学习 IO 随机访问文件 RandomAccessFile类
此类既可以读也可以写 但是都是针对于文件,不能针对其他节点流RandomAccessFile不是IO体系的类 父类是Objectpublic class Demo { public static void main(String[] args) throws IOException, ClassNotFoundException { writeAcc(); readAcc()...原创 2018-08-06 11:09:01 · 229 阅读 · 0 评论 -
Java学习 IO 对象序列化Serializable
public static void writeObj() throws FileNotFoundException, IOException { //将文件与文件输出流相关联 FileOutputStream fos = new FileOutputStream("C:\\Users\\悠悠华\\Desktop\\test\\obj.object"); //将文件输出流与对象输出流...原创 2018-08-05 18:31:42 · 195 阅读 · 0 评论 -
Java学习 序列流SequenceInputStream
将两个文件合并到一个文件中public static void main(String[] args) throws IOException { FileInputStream f1 = new FileInputStream("C:\\Users\\悠悠华\\Desktop\\test\\ccc.txt"); FileInputStream f2 = new FileInpu...原创 2018-08-05 16:13:05 · 157 阅读 · 0 评论 -
Java学习 PrintStream PrintWriter
PrintStream类1,提供了打印方法可以对多种数据类型进行打印,并保持数据的表示形式2,不抛IOException异常 构造函数,接受三种数据类型的值1,字符串路径2,File对象3,字节输出流public static void main(String[] args) throws IOException { PrintStream out = new...原创 2018-08-04 18:14:04 · 184 阅读 · 0 评论 -
Java学习 IO Properties类
特点: 1,该集合的键和值都是字符串类型 2,该集合的数据可以保存在流中,或者从流获取通常该集合用于操作以键值对形式存在的配置文件public static void main(String[] args) throws IOException { Properties p = new Properties(); p.setProperty("张三",...原创 2018-08-04 17:20:46 · 140 阅读 · 0 评论 -
Java学习 IO File类
File的常见方法1,获取 1.1获取文件名称 1.2获取文件路径 1.3获取文件大小 1.4获取文件修改时间public static void main(String[] args) throws IOException { File file = new File("c:\\Users\\悠悠华\\Deskt...原创 2018-08-04 09:59:23 · 114 阅读 · 0 评论 -
Java学习 正则表达式
正则表达式用于操作字符串数据是通过一些特定的符号来实现这些操作字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) [a-z&&[d...原创 2018-07-25 10:48:36 · 175 阅读 · 0 评论 -
Java学习 反射
每个类加载之后,系统就会为这个类生成一个对应的Class对象,通过该Class对象就可以访问到JVM中的这个类,相当于对这个字节码对象进行解剖,将加载之后的类进行拆分,将字段,方法等暴露给JVM生成Class对象有三种常用方法:1,Object类的getClass()方法。因为Object类是所有类的基类,所以都有这个方法,但是这个方法必须生成对象public static void...原创 2018-07-22 17:48:13 · 134 阅读 · 0 评论 -
Java学习 一个子串在整串中出现的次数
我们可以使用indexOf(String)这个函数,来返回子串出现的第一个位置,然后通过indexOf(int,String)来查找下一个子串的位置,每次都加上子串的长度private static int getKeyCount(String str, String key) { //str是整串,key是要查找的子串 int count = 0; //重置...原创 2018-06-22 09:26:11 · 1218 阅读 · 0 评论 -
Java学习 异常处理
java中将所有的异常封装成对象,当运行时发现问题,就将通过关键字throw将异常对象抛出public class Demo{ public static void main(String[] args) { int[] arr = new int[3]; show(arr,3); } public static void show(int[] arr,int index) {...原创 2018-06-08 11:12:32 · 125 阅读 · 0 评论 -
Java学习 final关键字
我们前面学到了继承能够很好的提高代码复用性,可是同时也带来了一些隐患,破坏了封装性。比如,如果一个类的的成员函数调用了一些系统函数,而这个类被其他类继承并且函数被覆盖,那么系统函数就无用了,所以在这里我们能感觉出,这个类不想被继承。这时候我们就需要使用final来修饰这个类。如果我们一个类中只是一些函数需要被修改,那么我们可以使用final修饰那些不想被覆盖的函数,那样这些函数将不会被覆盖同样,f...原创 2018-05-25 22:03:39 · 84 阅读 · 0 评论 -
Java学习 继承之子类实例化
class A{ A() { System.out.println("父类无参"); show(); //注意这里 调用的是子类的show() } public void show() { System.out.println("父类..."); } }class B extends A{ int num = 3;...原创 2018-05-25 21:04:18 · 485 阅读 · 0 评论 -
Java学习 继承之子类父类的构造函数
class A{ int num = 2; A() { System.out.println("父类"); } }class B extends A{ int num = 3; B() { //子类构造函数这里默认有条隐式语句 super() System.out.println("子类");...原创 2018-05-25 14:12:42 · 263 阅读 · 0 评论 -
Java学习 继承之重载与覆盖
继承中,如果想访问父类中的成员,可以使用super关键字,与this的用法很相似但是有一点不同this可以指代对象,super不能指代对象,super代表着父类空间。class A{ int num = 12;}class B extends A{ int num = 13; public void show() { System.out.println(this.num+" ...原创 2018-05-25 13:49:17 · 151 阅读 · 0 评论 -
java学习 二维数组内存图
原创 2018-05-15 08:27:24 · 577 阅读 · 0 评论 -
java学习 数组折半查找
我们如果想在数组中找到某个我们想要的值,很好想到 我们遍历整个数组 如果遍历的数组值与我们想要的值相等就返回此数组元素的下标。public static int search(int[] arr,int key) //普通查找 数组有序无序均可 { for(int x = 0;x<arr.length;x++) //遍历整个数组 { if(arr[x] =...原创 2018-05-14 19:52:01 · 415 阅读 · 0 评论 -
java学习 this使用补充
this还可以在构造函数中调用其他构造函数,但是this调用语句必须在构造函数中是第一句,如图所示:原创 2018-05-20 10:52:29 · 84 阅读 · 0 评论 -
java学习 选择排序的优化
之前学到的选择排序(博客前篇)是第一个无序元素与其他元素依次比较,其中每次比较存在前面元素大于后面元素就交换。这样在堆内存中交换的次数就比较频繁,但其实一轮过后是找到最小元素与无序区第一个元素交换。new:我们大可在内存建立两个变量来存储每次比较的较小值和较小值的下标,每次比较就刷新。public static void selectSort(int[] arr) //未优化的选...原创 2018-05-14 08:45:07 · 706 阅读 · 1 评论 -
java学习 数组的排序 选择排序 冒泡排序
选择排序:原创 2018-05-13 21:13:26 · 119 阅读 · 0 评论 -
java学习 数组基本操作 求极值
public class Test{ public static void main(String[] args) { int[] array = {12,34,5,6,89,2,345}; System.out.println(getMax(array)); System.out.println(getMax2(array)); } public static...原创 2018-05-12 21:54:41 · 1927 阅读 · 0 评论 -
java学习 运算符 琐碎 short
一直认为 a+=2 与a = a+ 2是一样的但是第一种编译不通过,而第二种正常。与byte一样 java默认整型是int,short a = 2 ,将2中砍掉两个字节 转换成short 这是由计算机检测认为可以的。而a = a + 2同样的a是变量,对于a的值并不确定,为了安全 系统不准通过。至于a+=2是一步执行,系统底层帮助我们检测并转化为short好比a = short(a + 2)...原创 2018-05-11 19:23:52 · 227 阅读 · 0 评论 -
java学习 自增运算符 琐碎
1.int a=2;int b = a++;System.out.println(b);2.int a = 2;int b = ++a;System.out.println(b);3.int a = 2;a = a++;System.out.println(a);熟知的自增运算符a++:我们说是先赋值,再增加++a:我们说是先增加,再赋值这个口诀从大一时c语言老师就教导我们...原创 2018-05-11 17:08:45 · 140 阅读 · 0 评论