java
BLUcoding
这个作者很懒,什么都没留下…
展开
-
java基础知识点07_文件与IO流
java基础知识点07_文件与IO流File类的四个静态成员变量:public static void main(String[] args) { //路径分隔符,windows系统为; linux系统为: String pathseparator = File.pathSeparator; char pathseparatorchar = File.pathSeparatorChar; //文件分隔符, windows系统为\ linux系统为/ String separator = Fil原创 2020-11-09 18:56:11 · 186546 阅读 · 0 评论 -
Apache POI与Alibaba EasyExcel 的使用
Apache POI 与 Alibaba EasyExcelApache POI<dependencies> <!-- xls(03) --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </原创 2020-09-30 14:04:20 · 153341 阅读 · 0 评论 -
java注解与反射02_反射
java注解与反射02正常方式:引入需要的包类名称 --> 通过 new 实例化 --> 获得实例化对象反射方式:实例化对象 --> 通过 getClass() 方法 --> 得到完整的包类名称User实体类:package com.blu.demo6;public class User{ private String name; private int id; private int age; public User() { } pu原创 2020-09-16 10:56:25 · 229562 阅读 · 3 评论 -
java注解与反射01_注解
java注解与反射注解内置注解:@Override定义在java.lang.Override中,声明该方法重写了超类中的方法@Deprecated定义在java.lang.Deprecated中,可修饰方法、属性、类。表示不鼓励,不推荐使用该元素,通常认为它很危险或已过时,存在更好的选择。@SuppressWarnings定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息该注解需要添加参数:@SuppressWarnings("all")@S原创 2020-09-16 09:48:18 · 220746 阅读 · 0 评论 -
Java多线程08_线程池
Java多线程08_线程池线程池的概念:线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。使用线程池的原因:多线程运行时间,系统不断的启动和关闭新线程,成本非常高,会过度消耗系统资源,以及过度切换线程的危险,从而可能导致系统资源的崩溃。这时,线程池就是最好的选择了。Executo原创 2020-09-15 09:32:26 · 214984 阅读 · 0 评论 -
Java多线程07_线程通信之管程法与信号灯法
Java多线程07_线程通信之管程法与信号灯法线程通信 的应用场景是 消费者/生产者问题:解决线程通信的方法:wait() 表示线程一直等待,直到接到通知(会释放锁)wait(long timeout) 指定线程等待的毫秒数notify() 唤醒一个处于等待状态的线程notifyAll() 唤醒同一个对象上的所有处于等待状态的线程管程法(通过缓冲区):生产者生产商品并存入缓冲区,消费者从缓冲区中消费商品。消费者消费产品后通知生产者生产,当缓冲区产品不足时,消费者线程等待原创 2020-09-12 22:54:38 · 143767 阅读 · 0 评论 -
Java多线程06_重入锁ReentrantLock
Java多线程06_重入锁ReentrantLockpublic class TestLock { public static void main(String[] args) { TestLock2 testLock2 = new TestLock2(); new Thread(testLock2).start(); new Thread(testLock2).start(); new Thread(testLock2).start(); }}class TestLock2原创 2020-09-03 21:42:16 · 116163 阅读 · 0 评论 -
Java多线程05_死锁
Java多线程05_死锁/** * 死锁:多个线程互相占着对方需要的资源,形成僵持状态 * @author BLU */public class DeadLock { public static void main(String[] args) { Makeup girl1 = new Makeup(0, "女一号"); Makeup girl2 = new Makeup(1, "女二号"); girl1.start(); girl2.start(); }}class原创 2020-09-03 21:08:57 · 114365 阅读 · 0 评论 -
Java集合01_ArrayList、LinkedList 和 Vector
Java集合数组的优点:元素连续分配空间,根据下标访问元素(随机访问效率高)数组的局限性:长度固定不变,不能自动扩容删除和插入操作效率较低,需要移动大量的元素元素的类型只能是一种元素连续分配空间,在 heap 内存中必须找到连续的内存空间来存储数组(对内存要求较高)为了解决数组的局限性,引入了容器类的概念ArrayListArrayList 底层数据结构是数组,查询快,增删慢,线程不安全,效率高add()、size()、isEmpty()contains()、indexOf()、原创 2020-09-01 17:06:52 · 122322 阅读 · 0 评论 -
Java多线程04_线程同步问题
Java多线程04_线程同步问题关键字 synchronized 可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块案例1:不安全的买票 (多个线程访问同一个对象的同一个方法):public class ByTicket { public static void main(String[] args) { BuyThread buyThread = new BuyThread(); new Thread(buyThread,"zhangsan").start(); new T原创 2020-08-30 16:25:59 · 113779 阅读 · 0 评论 -
Java多线程03_线程状态、优先级、用户线程和守护线程
Java多线程03_线程状态、优先级、用户线程和守护线程线程方法:setPriority() 更改线程优先级static void sleep() 线程休眠void join() 插队static void yield() 礼让void interrupt() 中断线程boolean isAlive() 是否存活停止线程:不推荐JDK提供的stop()、destory()方法 【已废弃】推荐让线程正常停止,不要死循环!建议使用一个标志位进行终止,当原创 2020-08-27 14:45:42 · 91924 阅读 · 0 评论 -
Java多线程02_Thread与静态代理
Java多线程02_Thread与静态代理静态代理示例:真实对象和代理对象都要 实现同一个接口代理是对方法的 增强public class StaticProxy { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(new BLU()); weddingCompany.HappyMarry(); }}interface Marry{ void原创 2020-08-27 12:22:16 · 112070 阅读 · 0 评论 -
Java多线程01_创建线程三种方式
线程程序是指令、数据的有序集合,是静态的概念进程是执行程序的一次执行过程,是动态概念一个进程中可包含多个线程,java中有两个默认线程:main线程 和 gc线程线程是CPU调度和执行的单位线程创建1:继承Thread类(不推荐,避免OOP单继承局限性)创建线程:继承Thread类,重写run方法 public class TestThread1 extends Thread{ @Override public void run() { for (int i = 0; i原创 2020-08-26 21:23:39 · 113235 阅读 · 0 评论 -
java基础知识点06_数字、字符串、日期
java基础知识点06_数字与字符串所有的基本类型,都有对应的类类型:抽象类Number的子类: Byte Short Integer Long Float DoubleCharacter Boolean装箱和拆箱装箱:值类型转换为object类型拆箱:object转化为值类型int i = 5;Integer it = new Integer(i);int i2 = it.intValue();自动装箱和自动拆箱不调用构造方法,而是通过 = 完成 基本类型 和 类类型 转换叫原创 2020-08-21 14:50:40 · 109204 阅读 · 0 评论 -
java基础知识点05_异常
java基础知识点05_异常 异常的超类:java.lang.Throwable异常处理机制捕获:int a = 1;int b = 0;try { System.out.println(a/b);} catch (ArithmeticException e) { System.out.println("程序出现异常:变量b不能为0");}finally { System.out.println("finally....");}public static void main(原创 2020-08-18 19:54:18 · 104048 阅读 · 0 评论 -
java基础知识点04_面向对象
java基础知识点04_面向对象面向对象编程OOP 的本质就是:以类的方式组织代码,以对象的形式封装数据面向对象三大特性:封装、继承、多态对象是具体的,类是对对象的抽象,描述对象的共同特征,是对象创建的模板,对象是类的一个具体实例,类实例化得到对象,每个类都有默认的无参构造方法,类实例化得到对象就是通过构造方法完成的,一旦定义了有参构造,无参构造就必须显示定义对象(具体):小明、小红、李华类(抽象):学生定义静态方法:public class Student { public stat原创 2020-08-16 23:24:11 · 67742 阅读 · 0 评论 -
java基础知识点03_数组
java基础知识点03_数组数组:声明数组:int[] nums;实例化数组:new int[10];给数组中的元素赋值:nums[0]=1;nums[1]=2;...nums[9]=10;获取数组的长度:nums.length获取数组中某个元素的值:nums[9]内存分析:堆:存放new的对象和数组,可被所有的线程共享,不会存放别的对象引用栈:存放基本变量类型(包含该基本变量类型的具体数值)方法区:包含了所有的class和static变量,可以被所有的线程共享原创 2020-08-16 22:16:05 · 68102 阅读 · 0 评论 -
java基础知识点02_流程控制
java基础知识点02_流程控制用户交互类Scanner:next()方法:从有效字符开始,以空白作为结束符,所以不能得到带空格的字符串public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入:"); String str = scanner.next(); System.out.println(str); scanner.close原创 2020-08-16 16:58:48 · 68091 阅读 · 0 评论 -
java基础知识点01
java基础知识点01java三大版本JavaSE 标准版(桌面程序,控制台)JavaME 嵌入式开发(小家电)JavaEE 企业级开发(web端,服务器开发)JDK: Java Development KitJRE: Java Runtime EnvironmentJVM: Java Virtual MachineJava安装和卸载:卸载JDK:删除java安装目录 —> 删除环境变量JAVA_HOME —> 删除Path中的JDK和JRE —> java -v原创 2020-08-16 15:06:28 · 68815 阅读 · 0 评论