Java进阶
铃鹿dgh
时代
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
注解(note在最下)
package sixDay.ReflectZhuJie;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//只允许该注解可以标注类,方法@Target({ElementType.TYPE,ElementType.METHOD,原创 2020-12-22 19:00:10 · 245 阅读 · 0 评论 -
反射机制
package OneDay;/** * 1、反射机制有什么用? * 通过java语言中的反射机制可以操作字节码文件 * 优点类似于黑客(可以读和修改字节码文件) * 2、反射机制相关类:java.lang.reflect.*; * 3、相关类:(较重要) * java.lang.Class; 代表字节码文件,代表一个类型 代表整个类 * java.lang.reflect.Method 代表字节码中的方法字节码 类中的方法 *原创 2020-12-22 18:54:55 · 136 阅读 · 0 评论 -
ACAC 消费者生产者模式
package Two;import java.util.LinkedList;import java.util.List;/** * 使用wait和notify方法实现“生产者和消费者模式” * 1、 什么是“生产者和消费者模式”? * 生产线程负责生产,消费线程负责消费 * 生产线程和消费线程均达到均衡 * 这是一种特殊的业务需求,在这种特殊的情况下,需要使用wait和notify方法 * * 2、wait和notify方法不是线程对象的方法,是普通原创 2020-12-07 20:37:42 · 155 阅读 · 1 评论 -
ACAC 定时器,守护线程,Callable接口
package Two;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** 使用定时器指定定时任务:* 语法:timer.schedule(new Data01(),date,5000);* */public class TimerTest01原创 2020-12-07 20:32:38 · 168 阅读 · 0 评论 -
ACAC 死锁(synchronized嵌套)
package DeadLock;public class Test01 { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); //两个线程共享o1,o2 MyThread a = new MyThread(o1,o2); MyThread02 b = new MyThread0原创 2020-12-06 18:25:49 · 332 阅读 · 0 评论 -
ACAC synchronized(一些问题)
package exam;public class exam01 { public static void main(String[] args) { Myclass mm = new Myclass(); MyThread a = new MyThread(mm); MyThread b = new MyThread(mm); a.setName("a"); b.setName("b");原创 2020-12-06 18:24:28 · 160 阅读 · 0 评论 -
ACAC 账户取款(synchronized方法)
package AccountThread02;public class Account { private String username; private double balance; Object obj = new Object();//实例变量 public Account() { } public Account(String username, double balance) { this.username = user原创 2020-12-06 18:21:54 · 143 阅读 · 0 评论 -
ACAC 线程同步机制(账户取款问题)
2、关于多线程并发环境下,数据的安全问题 * 以后的开发中,项目运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动 * 等实现了,我们不需要编写,但是,编写的程序需要放到一个多线程的环境下运行, * 需要关注的是这些数据在多线程并发的环境下是否是安全的,这是最重要的。 * * 1、什么情况下回出现线程安全问题? * 1、多线程并发 * 2、有共享数据 * 3、共享数据有修改行为 *原创 2020-12-06 18:18:17 · 143 阅读 · 0 评论 -
ACAC 线程的调度(合并和让位)
/** * 了解,线程的调度: * 1、常见的线程调度模型有哪些? * 抢占式调度模型: * 哪个线程的优先级比较高,抢到的CPU时间片的概率就高一些/多一些 * java采用的就是抢占式调度模型 * 2、均分是调度模型: * 平均分配CPU时间片,每个线程占有的CPU时间片时间长度一样 * 平均分配,一切平等,一些编程语言,线程调度模型采用的是这种模型 * * 1、void setPriority(int newPrio原创 2020-12-05 19:19:08 · 167 阅读 · 0 评论 -
ACAC 关于线程休眠
/** * 1、关于线程的sleep方法: * static void sleep(long millis) * 参数是毫秒 * 作用:让当前进程进入休眠,进入“阻塞状态”,放弃占有的CPU时间片,让给其他线程使用 * * 2、Thread.sleep()方法,可以间隔特定的时间,去执行一段代码,每隔多久执行一次 * */public class ThreadTest04 { public static void main(String[] args原创 2020-12-05 19:16:42 · 182 阅读 · 0 评论 -
ACAC 线程概述(简单实现)
/** * 1、什么是进程?什么是线程? * 进程是一个应用程序(一个进程是一个软件) * 线程是一个进程中的执行场景/执行单元 * 一个进程可以启动多个线程 * * 2、对于java程序来说,当在Dos窗口输入: * java HelloWorld回车之后,会先启动JVM,JVM就是一个线程 * JVM再启动一个主线程调用main方法,同时启动一个垃圾回收线程负责看护,回收垃圾 * 最少java程序中至少有两个线程并发:一个是垃圾回收线程,原创 2020-12-05 19:15:05 · 296 阅读 · 0 评论 -
ACAC IO + properties(属性配置文件)
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.Properties;/** * IO + properties的联合应用: * 设计理念: * 以后经常改的数据,可以单独写到一个文件中,使用程序动态获取,将来只需要修改这个文件的内容 * java代码不需要改动,不需要重新编译,服务器也不需要重启,就可以原创 2020-12-04 22:40:49 · 179 阅读 · 0 评论 -
ACAC ObjectOutputStream(序列化)
import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;/** * 1、java.io.NotSerializableException * 不支持序列化异常 * * 2、参与序列化和反序列化的对象,必须实现Serialize接口 * 3、通过源代码发现:Ser原创 2020-12-04 22:39:23 · 155 阅读 · 0 评论 -
ACAC copy目录(成功)
package practice;import java.io.*;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;/** * H:\Java\bin\server文件夹为空, 为什么会出现这种问题: * if(infile.length() == 0)这行代码有问题,如果是文件夹的话(java/bin/serv原创 2020-12-04 22:37:29 · 190 阅读 · 0 评论 -
ACAC copy目录(失败)
package practiceWrong;import java.io.*;//利用FileOutputStream 和 FileInputStream copy//传进来的应该是两个字符串,代表着从哪里复制,以及复制到哪里class CopyTest01 { public void copy(String in , String out){ FileInputStream input = null; FileOutputStream output = n原创 2020-12-04 22:35:16 · 116 阅读 · 0 评论 -
ACAC File类和PrintStream
import java.io.File;import java.io.IOException;/** * File: * 1、File类和四大家族没有关系,所以File类不能完成文件的读和写 * 2、File对象代表什么? * 文件和目录路径的抽象表达式 * 一个File对象可能对应的是目录,也可能是文件 * File只是一个路径名的抽象表达式 * * 3、File中常用的方法: * */publ原创 2020-12-02 15:48:43 · 121 阅读 · 0 评论 -
ACAC FileReader和DataInput
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;/** * * FileReader * 文件字符输入流,只能读取普通文本 * 读取文本内容时,比较方便 * */public class FileReaderTest01 { public static void main(String[] args) { FileRea原创 2020-12-02 15:46:20 · 455 阅读 · 0 评论 -
ACAC FileOutputStream和BufferReader/writer,拷贝文件
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * int available() 返回没有读取的字节个数 * long skip(long n) 跳过n个字节,或者说是从第n个字节(下标)开始读取 */public class FileInputStreamTest04 { public static void main(Stri原创 2020-12-02 15:43:32 · 269 阅读 · 0 评论 -
ACAC 概述IO流及FileInputStream
/** * IO流,什么是IO? * I:input * O:output * 通过IO可以完成硬盘文件的读和写 * * IO流的分类: * 1、按照流的方向进行分类 * 以内存为参照物: * 往内存中去,叫做输入,或者读(Read) * 从内存中出来,叫输出,或者写(Write) * * 2、另一种方式是按照读取数据方法不同进行分类: * 1、有原创 2020-12-02 15:37:56 · 283 阅读 · 0 评论 -
ACAC 集合总结(干货)
package ZongJIe;/** * 1、集合这块主要掌握哪些内容? * 1.创建集合对象 * 2.向集合中添加元素 * 3,从集合中取出某个元素 * 4,遍历集合 * */public class Note01 {}package ZongJIe;/** * 1.创建集合对象 * 2.向集合中添加元素 * 3,从集合中取出某个元素 * 4,遍历集合 * * LinkedList和ArrayList原创 2020-11-30 22:23:17 · 573 阅读 · 0 评论 -
ACAC TreeSet()
package TreeSetTest;import java.util.TreeMap;import java.util.TreeSet;/** 1、TreeSet集合底层实际上是一个TreeMap* 2、TreeMap集合底层是一个二叉树* 3、放到TreeSet集合中的元素,等同于放到TreeMap集合key部分* 4、TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序* 称为:可排序集合*/public class Note01 {原创 2020-11-30 22:03:24 · 121 阅读 · 0 评论 -
ACAC properties(两个方法)
package PropertiesTest;import java.util.Properties;/** 目前只需要掌握properties属性类对象的相关方法即可* Properties是一个Map集合,继承Hashtable,Properties的key和value,都是String类型* Properties被称为属性类对象,是线程安全的* */public class Note01 { public static void main(String[] arg原创 2020-11-30 21:42:12 · 164 阅读 · 0 评论 -
ACAC HashMap概述(get(v)和put(k,V))
package HashMap;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * HashMap集合: * 1、HashMap集合底层是哈希表/散列表数据结构 * 2、哈希表是一个怎样的数据结构呢? * 哈希表是一个数组和单向链表的结合体 * 数组:在查询方面效率很高,随机增删方面效率很低 * 哈希表将以上的两种数据结构融合在一起,原创 2020-11-29 20:43:53 · 250 阅读 · 0 评论 -
ACAC Map常用方法
package MapTest;import java.util.*;/** java.util.Map接口中常用的方法:* 1、Map和Collection没有继承关系* 2、Map集合以key和value的方式存储数据:键值对* key和value都是引用数据类型* Key和value都是存储对象的内存地址* Key起到主导的地位,value是Key的一个附属品* 3、Map中常用的方法:* void clear()原创 2020-11-29 20:41:02 · 179 阅读 · 0 评论 -
ACAC 泛型和foreach
package Generic;import link.Link;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;/** * 1、JDK5.0后推出的新特性:泛型 * 2、泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段泛型没用) * 3、使用了泛型好处是什么? * 1、集合中存储的元素类型统一原创 2020-11-29 20:39:18 · 139 阅读 · 0 评论 -
ACAC LinkedList 和vector浅析
package LinkListed00;/** * 链表的优点: * 由于链表上的元素在空间存储上内存地址不连续 * 所以随机增删元素的时候不会有大量元素位移,因此随机增删效率较高 * 在以后的开发中,如果遇到随机增删集合中元素的业务比较多时,建议使用LinkedList * * 缺点: * 不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历 * 直到找到为止,所以LinkedList集合检索/查找的效率较低原创 2020-11-27 13:25:28 · 143 阅读 · 1 评论 -
ACAC 失败的单链表(删除可以,插入不可)
package link;import java.util.Objects;/** 链表类* */public class Link { //头节点 Node header; Node header02; Node header03; Node header04; String no = "not"; String yes = "yes"; /** * 遍历单链表 * 之所以写这个方法不是为了方便原创 2020-11-27 13:22:43 · 192 阅读 · 0 评论 -
ACAC List常用方法(ArrayList)
import java.util.ArrayList;import java.util.Iterator;import java.util.List;/*** 测试List接口常用方法:* 1.List集合存储元素特点:有序可重复* 有序:List集合中的元素有下标,从0开始,以1递增* 可重复:存储一个1,还可再存储1* 2、List是Collection接口的子接口,有自己的特有方法:* 常用的特有的方法:* void add(原创 2020-11-27 13:18:54 · 272 阅读 · 0 评论 -
ACAC contains 和 remove深入
import java.util.ArrayList;import java.util.Collection;/** 1、boolean contains(Object o) 返回 true 如果集合包含指定元素,否则返回false**** */public class CollectionTest04 { public static void main(String[] args) { Collection c = new ArrayList();原创 2020-11-27 13:16:06 · 142 阅读 · 0 评论 -
ACAC Collection的一些方法,和迭代器
/*** 1、Collection中放什么元素?* 没有使用“泛型”之前,Collection中可以存储Object的所有子类型* 使用“泛型”之后,Collection中只能存储某个具体的类型,集合后,学习泛型,* 注意:集合中不能直接存储基本数据类型,也不能存java对象,只是存储java对象的内存地址** 2、Collection中的常用方法:* boolean add(E e) 向集合中添加元素* void clear() 从这个原创 2020-11-27 13:13:43 · 286 阅读 · 1 评论 -
ACAC 集合概述以及图解
import java.util.Set;/** 1、集合概述:* 什么是集合?有什么用?* 数组其实就是一个集合,集合实际上是一个容器,可以来容纳其他类型的数据** 集合为什么说在开发中使用较多?* 集合是一个容器,是一个载体,可以一次容纳多个对象* 在实际开发中,假设连接数据库,数据库中有10条记录* 假设将这10条记录查询出来,在java程序中会将10条记录* 封装成10个java对象,然后将这10个ja原创 2020-11-23 21:40:45 · 594 阅读 · 0 评论 -
ACAC 自定义异常
/**1、 SUN提供的JDK内置的异常肯定是不够用的,在实际的开发中,有很多业务,* 这些业务出现异常后,JDK中都是没有的,和业务挂钩的,异常类我们可以* 自己定义吗??* 可以*2、java中怎样自定义异常?* 1、写一个类继承Exception 或者 RuntimeException* 2、提供两个构造方法,一个有参的,一个无参的* 记住就行,模板SUN公司* */public class MyException extends Except.原创 2020-11-22 14:34:15 · 308 阅读 · 0 评论 -
ACAC 异常处理(2)
/*** 关于try..catch中的finally字句:* 1、在finally字句中的代码是最后执行的,并且是一定会执行的,几时try语句块中的代码出了异常* finally必须和try一共出现,不能单独出现* 2、finally语句通常使用在哪些情况下?* 通常在finally语句块中完成资源的释放/关闭* 因为finally中的代码比较有保障* 即使try语句块中的代码出现异常,finally中代码也会正常执行** */.原创 2020-11-22 14:32:04 · 11237 阅读 · 0 评论 -
ACAC 异常处理(1)
/*** 处理异常第一种方式:* 在方法是声明的位置上使用throws关键字抛出,谁调用这个方法,就抛给谁* 第二种方式:* 使用try..catch语句对异常进行捕捉* 不在上抛了,自己处理了** 注意:只要代码异常采用上抛,没有捕捉,则此方法的后续代码不会执行,此方法结束* try语句块中的某一行出现异常,该行后面的代码不会执行* try..catch捕捉异常后,后续代码(指的是try..catch语句块)可以执行*.原创 2020-11-22 14:29:33 · 2013 阅读 · 0 评论 -
ACAC 异常的概述
/** 1、什么是异常? 异常机制有什么用?* 程序执行过程中发生不正常的情况,就叫做:异常* java把该异常信息打印输出到控制台,供程序员参考,程序员看到异常信息后* 对程序进行修改,让程序更健壮**2、java中异常的存在形式* 异常以类的形式存在,每一个异常类都可以创建异常对象** 3、异常对应的现实生活是怎样的?* 火灾(异常类)* 1010年,小明家着火(异常对象)* 1020年,小红家着火* 1030年,小原创 2020-11-22 14:27:01 · 407 阅读 · 0 评论 -
ACAC 日期类(常用类)
package 日期类;import java.text.SimpleDateFormat;import java.util.Date;/** java中对日期的处理:* 1、怎么获取当前时间* 2、String--> Date* 3、Date --> String*/public class Note01 { public static void main(String[] args) throws Exception{// 获取系原创 2020-11-18 21:39:23 · 237 阅读 · 0 评论 -
ACAC 数字类(常用类)
package 数字类;import java.math.BigDecimal;import java.text.DecimalFormat;/** 关于数字的格式化* 1、BigDecimal:属于大数据,精度极高,不属于基本上数据类型,,属于java对象* 这是Sun公司提供的的一个类,专门用在财务软件中 java.math.BigDecimal* 2、* */public class Note01 { public static void main原创 2020-11-18 21:37:35 · 365 阅读 · 0 评论 -
ACAC 包装类(常用类)
package 包装类;/* * java中为八种基本数据类型由对应准备了八种包装类型:八种包装类输入引用数据类型,父类Object * 1、为什么要再提供八种包装类型? * 八种基本数据类型不够用,所以SUN公司又提供对应的八种包装类型 * * */public class Note01 { public static void main(String[] args) { /* * 有没有这种需求,调用doSome需要传一原创 2020-11-18 21:36:21 · 2394 阅读 · 0 评论 -
ACAC String构造方法(常用类)
package String构造方法;/** 关于String类中的构造方法* 1、String s = "fsd";* 2、String s = new String("fd");* 3、String s = new String(char数组);* 4、String s = new String(char数组,下标,长度);* 5、String s = new String(byte数组);* 6、String s = new String(char数组,下标,原创 2020-11-18 21:32:01 · 360 阅读 · 0 评论 -
ACAC StringBuffer(常用类)
package StringBuffer;/** 思考:实际开发中,如果需要进行字符串的频繁拼接,会有什么问题?* 因为java中的字符串是不可变的,每一次拼接都会产生新的字符串* 会占用大量的方法区内存,造成内存空间的浪费* 如: String s = "abv";* s += "hello"* 以上两行代码,在字符串常量池中创建了三个对象* “abv" ”hello“ ”abvhello“* 如果以后要进行大量字符串拼接操原创 2020-11-18 21:29:43 · 139 阅读 · 0 评论
分享