随笔分类 -  Java

Java基础,Java高级,JavaWeb,
摘要:1.死锁 不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。 说明: 出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续。 因此使用同步时,要避免出现死锁问题。 public class DeadLock { public 阅读全文
posted @ 2022-10-27 14:51 植树chen 阅读(48) 评论(0) 推荐(0)
摘要:1.线程安全问题 三个售票窗口,总票数为100张,卖票过程中,线程a在操作ticket,未操作完成时,其他线程参与进来,也操作ticket。导致出现重票、错票问题。(线程安全问题)。 class TicketWindow implements Runnable{ private int ticket 阅读全文
posted @ 2022-10-27 09:40 植树chen 阅读(201) 评论(0) 推荐(0)
摘要:方式一:写两个类,run方法分别实现 class MyThread1 extends Thread{ @Override public void run() { for (int i = 0; i < 100; i++) { if(i % 2 == 0){ System.out.println(Th 阅读全文
posted @ 2022-10-26 13:54 植树chen 阅读(85) 评论(0) 推荐(0)
摘要:1.线程的生命周期 2.流程 (1)新建 Thread t1 = new MyThread(); 此时线程状态为新建NEW (2)就绪 t1.start(); 线程从NEW变为RUNNABLE状态,等待CPU调度执行权 (3)运行 获取CPU执行权,调用run()方法,线程从RUNNABLE状态变为 阅读全文
posted @ 2022-10-12 15:20 植树chen 阅读(41) 评论(0) 推荐(0)
摘要:1.Thread类中常用方法 | Thread类常用方法 | 描述 | | | | | start() | 启动当前线程,调用当前线程的run()方法。 | | run() | 通常需要重写该方法,将线程要执行的操作写在此方法中。 | | currentThread() | 静态方法,返回执行当前代 阅读全文
posted @ 2022-10-12 14:42 植树chen 阅读(157) 评论(0) 推荐(0)
摘要:方式一:继承Thread类 public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 100; i++) { if (i % 2 == 0) { System.out.printl 阅读全文
posted @ 2022-10-11 19:24 植树chen 阅读(33) 评论(0) 推荐(0)
摘要:1.程序 一段静态的代码(未启动的APP),可以完成特定任务。 2.进程 正在运行的程序(挂在后台的APP),系统给进程分配了内存。 3.线程 程序内部的一条执行路径(比如QQ中执行聊天功能,发动态功能,这些小功能相当于一个线程)。 线程作为调度和执行的单位,每个线程拥独立的运行栈和程序计数器(pc 阅读全文
posted @ 2022-10-09 18:38 植树chen 阅读(36) 评论(0) 推荐(0)
摘要:1.单核与多核CPU (1)单核:一个人 (2)多核:多个人 人与人之间有力量的大小区分,核心也可分为大核、小核。 多个人一起搬砖需要指挥配合 -> 对多核的优化。 2.串行 排队一个一个来。 3.并行 大家一起上,多个人同时做不同的事。 在同一个时刻多个任务同时执行,体现在多核处理器上,多个线程同 阅读全文
posted @ 2022-10-09 18:24 植树chen 阅读(43) 评论(0) 推荐(0)
摘要:1.自定义异常类 (1)继承现有异常类:比如RuntimeException、Exception。 (2)提供全局常量:serialVersionUID。 (3)提供重载构造器。 public class ValueException extends Exception{ static final 阅读全文
posted @ 2022-09-28 19:31 植树chen 阅读(97) 评论(0) 推荐(0)
摘要:1.throws声明抛出异常 一个方法中可能出现异常,那么可以使用throws抛出异常,交给这个方法的调用者处理(也不处理就继续向上抛,直到main方法)。 public void say() throws ClassCastException { Object o = new Object(); 阅读全文
posted @ 2022-09-28 19:24 植树chen 阅读(173) 评论(0) 推荐(0)
摘要:1.异常对象生成(抛出异常) Java程序的执行过程中如果出现异常,就会生成一个异常类的对象,该异常对象将会被提交给Java运行时系统。 虚拟机自动生成异常对象:虚拟机检测到程序发生了问题,在后台自动创建异常对象,并交给Java运行时系统(抛出)。 开发人员手动创建异常对象:Exception ex 阅读全文
posted @ 2022-09-28 19:07 植树chen 阅读(276) 评论(0) 推荐(0)
摘要:1.异常 异常:执行中发生的不正常情况。 分为两类: Error:JVM系统内部错误、资源耗尽等严重情况。比如Stack OverflowError和 Out Of Memory。 Exception:空指针访问、试图读取不存在的文件、网络连接中断、数组下标越界。 解决办法:① 终止程序运行;② 错 阅读全文
posted @ 2022-09-27 18:31 植树chen 阅读(277) 评论(0) 推荐(0)
摘要:1.内部类 在一个类的内部再定义一个类,内部类和外部类名字不能相同。 可以分为 成员内部类:静态、非静态 局部内部类:方法内、代码块内、构造器内,匿名内部类 2.成员内部类 (1)非静态 ① 和普通类差不多,可以在内部定义属性、方法、构造器等结构。 ② 可以使用public、protected、缺省 阅读全文
posted @ 2022-09-26 18:43 植树chen 阅读(94) 评论(0) 推荐(0)
摘要:1.interface说明 Java中不支持多继承,但有时必须从几个类中派生出一个子类,继承它们所有的属性和方法,使用interface达到多重继承的效果。 interface:接口,定义一组规则,是“能不能”的关系。 继承是一个“是不是”的关系。 2.接口注意点 (1)接口中的所有成员变量都默认由 阅读全文
posted @ 2022-09-21 18:25 植树chen 阅读(282) 评论(0) 推荐(0)
摘要:1.abstract说明 abstract 表示抽象的,可以用来修饰类、方法。 推荐阅读:为什么使用抽象类?有什么好处? abstract 修饰类:抽象类 此类不能实例化(创建对象) 让子类对象实例化 抽象的使用前提:继承性 abstract 修饰方法:抽象方法 抽象方法只有方法的声明,没有方法体。 阅读全文
posted @ 2022-09-20 17:33 植树chen 阅读(122) 评论(0) 推荐(0)
摘要:1.代码说明 System类提供一些有用的属性和方法,包括标准输入输出和错误打印。 有一个对象属性out,类型为PrintStream。 setOut()方法使用static修饰,类加载时执行。 该对象属性可以调用PrintStream类中的打印方法。 public final class Syst 阅读全文
posted @ 2022-09-20 16:27 植树chen 阅读(788) 评论(0) 推荐(0)
摘要:1.final说明 final 表示最终的,可以用来修饰类、变量、方法。 final 修饰类:此类不能被其他类所继承 比如:String类、System类、StringBuffer类 final class A{ } class B extends A{ //编译错误,不能被继承 } final 修 阅读全文
posted @ 2022-09-20 15:32 植树chen 阅读(340) 评论(0) 推荐(0)
摘要:1.代码块说明 一对花括号表示,仅可以使用static修饰,可以用来对类或对象进行初始化。 静态代码块:static修饰 随着类的加载而执行,只执行一次,有多个时,按顺序执行。 无法调用非静态结构。 非静态代码块 每次创建对象时都会执行一次,且优先于构造器执行,有多个时,按顺序执行。 可以调用静态结 阅读全文
posted @ 2022-09-20 14:38 植树chen 阅读(30) 评论(0) 推荐(0)
摘要:1.单例模式 设计模式:大量的实践总结和理论化之后最优的代码结构、编程风格、解决问题的思考方式。类似于棋谱、套路。 单例模式:在整个程序中,对某个类只能存在一个对象实例。比如windows系统中任务管理器窗口只能打开一个。 (1)对象通过构造器来创建,防止别的类使用new来创建该类对象,因此将构造器 阅读全文
posted @ 2022-09-20 11:12 植树chen 阅读(35) 评论(0) 推荐(0)
摘要:1.main()方法说明 (1)是一个方法,方法名为main,是程序执行的入口。 (2)Java虚拟机需要调用类的main()方法,因此权限为public,用其他修饰则无法执行。 (3)不需要创建对象即可执行,因此用static修饰。 (4)参数为String类型的数组,执行时可以传递参数给所运行的 阅读全文
posted @ 2022-09-19 20:02 植树chen 阅读(625) 评论(0) 推荐(0)