随笔分类 -  基础

摘要:java.lang.String类的使用 1.概述: String:字符串,使用一对""引起来表示 String声明为final的,不可被继承 String实现了Serializable接口,表示字符串支持序列化。 实现了Comparable接口,表示字符串可以比较大小 String内部定义了fin 阅读全文
posted @ 2022-06-25 22:50 安家小皮孩 阅读(17) 评论(0) 推荐(0) 编辑
摘要:新增方式一:实现Callable接口。 > JDK5.0新增 //1.创建Callable接口的实现类 class NumThread implements Callable{ //2.实现call方法,将此线程需要执行的操作声明在call()中 @override public Object ca 阅读全文
posted @ 2022-06-25 21:37 安家小皮孩 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1.线程通信涉及到的三个方法: wait(): 一旦执行此方法,当前线程就会进入阻塞状态,并释放同步监视器 notify():一旦执行此方法,就会唤醒被wait的线程。如果有多个线程被wait,就唤醒优先级高的那个。 notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。 2.说明: 阅读全文
posted @ 2022-06-15 22:50 安家小皮孩 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1.死锁的理解: 不同的线程分别用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就会形成线程的死锁。 2.说明: 出现死锁后,不会出现异常,不会出现提示,只是所有的线程处于阻塞的状态,无法继续。 我们使用同步时,要避免出现死锁。 3.【例子代码】 public class Threa 阅读全文
posted @ 2022-06-15 22:21 安家小皮孩 阅读(24) 评论(0) 推荐(0) 编辑
摘要:线程安全的单例模式(懒汉式) class Bank{ private Bank(){} private static Bank instance = null; public static Bank getInstance(){ //方式一:效率稍微差一些 synchronized(Bank.cla 阅读全文
posted @ 2022-06-15 19:36 安家小皮孩 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1.背景: 例子:创建个窗口卖票,总票数为100张,使用实现Runnable接口方式。 问题:买票过程中,出现了重票、错票 > 出现了线程的安全问题 问题出现的原因: 当某个线程操作车票的过程中,尚未操作完成时,其他线程参与来,也操作车票。 如何解决:当一个线程a在操作ticket的时候,其他线程不 阅读全文
posted @ 2022-06-15 19:05 安家小皮孩 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Thread的生命周期 图示: 说明: 生命周期关注两个概念:状态、相应的方法 关注:状态a > 状态b :哪些方法执行了(回调方法) 某个方法主动调用:状态a > 状态b 阻塞:临时状态,不可以作为最终状态 死亡:最终状态 阅读全文
posted @ 2022-06-15 18:17 安家小皮孩 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Thread类中的常用方法: strat():启动当前线程的run() run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 currentThread():静态方法,返回执行当前代码的线程 getName(): 获取当前线程的名字 setName(): 设置当 阅读全文
posted @ 2022-06-13 22:35 安家小皮孩 阅读(29) 评论(0) 推荐(0) 编辑
摘要:创建多线程的两种方式 方式一:继承Thread类的方式 创建一个继承Thread类的子类 重写Thread类中的run() --> 将执行代码逻辑声明在run()中 创建Thread类的子类对象 通过此对象调用start(): ① 启动当前线程 ② 调用当前线程的run() 【代码】 public 阅读全文
posted @ 2022-06-13 22:09 安家小皮孩 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1.单核CPU和多核CPU的理解 单核CPU:其实是一种假的的多线程,因为在一个时间单元内,也只能执行一个线程的任务。 例如:虽然有多车道,但是收费站只有一个工作人员在收费,只有收了费的才能通过,那么CPU就好比收费人员。如果某个人不想交钱,那么收费人员就可以把他“挂起”(晾着他,等他想通了,准备好 阅读全文
posted @ 2022-06-13 17:20 安家小皮孩 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1.程序(program) 概念:是为了完成特定的任务,使用某种语言写的一组指令的集合。即指一段静态的代码。 2.进程 (process) 概念:是程序的一次执行过程,或是正在运行的一个程序 说明:进程作为资源分配的单位,系统在运行时会为每一个进程分配不同的内存区域。 3.线程(thread) 概念 阅读全文
posted @ 2022-06-13 17:00 安家小皮孩 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1.如何自定义一个异常类? 继承于现有的异常结构:RuntimeException、Exception 提供一个全局常量:serialVersionUID 提供一个重载的构造器 2.【代码】 public class MyException extends Exception { static fi 阅读全文
posted @ 2022-06-13 16:41 安家小皮孩 阅读(29) 评论(0) 推荐(0) 编辑
摘要:1.使用说明: 在程序执行中,除了自动抛出异常对象情况之外,我们还可以手动的throw一个异常类的对象。 2.【面试题】 throw 和 throws区别? throw 表示抛出一个异常类的对象,生成一个异常类对象的过程。声明在方法体内。 throws 属于异常处理的一种方式,声明在方法的声明处。 阅读全文
posted @ 2022-06-13 16:33 安家小皮孩 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1.Java异常处理的抓抛模型 过程一:“抛”: 程序在正常执行的过程中,一旦出现了异常,就会在异常代码出生成一个对应异常类的对象。 并将对象抛出 一旦抛出对象以后,其后的代码就不再执行。 关于异常对象的产生:① 系统自动生成的异常对象 ② 手动的生成一个异常对象,并抛出(throw) 过程二:“抓 阅读全文
posted @ 2022-06-12 19:05 安家小皮孩 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1.异常的体系结构: java.lang.Throwable | java.lang.Error:一般不编写针对性的代码进行处理。 | java.lang.Exception:可以进行异常处理 | 编译时异常(checked) | IOException | FileNotFoundExceptio 阅读全文
posted @ 2022-06-12 17:49 安家小皮孩 阅读(21) 评论(0) 推荐(0) 编辑
摘要:内部类:类的第五个成员 1.定义: Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类。 2.内部类的分类: 成员内部类(静态、非静态)vs 局部内部类(方法内、代码块内、构造器内) 3.成员内部类的理解: 一方面,作为外部类的成员: > 调用外部类的结构 > 可以被sta 阅读全文
posted @ 2022-06-12 16:06 安家小皮孩 阅读(46) 评论(0) 推荐(0) 编辑
摘要:1.解决的问题 实现了创建者与调用者分离,即将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 2.具体模式 简单工厂模式:用来生产同一等级结构中的任意产品。(对于增加新的产品,需要修改已有代码) 工厂方法模式:用来生产同一等级结构中的固定产品。(支持增加任意产品) 抽象工厂模式:用来生产不同 阅读全文
posted @ 2022-06-12 15:06 安家小皮孩 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1.解决的问题 代理模式是Java开发中使用较多的一种设计模式。代理设计就是为其他对象提供一种代理以控制对这个对象的访问。 2.【举例】 interface NetWork{ public void browse(); } //被代理类 class Server implements NetWork 阅读全文
posted @ 2022-06-11 20:50 安家小皮孩 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1.使用说明: 接口使用interface来定义 在Java中,接口和类是并列的两个结构 如何定义接口:定义接口的成员 3.1 JDK7及以前:只能定义全局常量和抽象方法 全局常量:public static final的,但是书写时,可以省略不写 抽象方法:public abstract的 3.2 阅读全文
posted @ 2022-06-11 20:16 安家小皮孩 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1.解决的问题: 在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤已经在父类中写好了。但是某些部分易变,易变部分可以抽象出来,共不同的子类实现。这就是一种模板设计。 2.举例 abstract class Template{//模板 //计算某段代码执行所需要花费的时间 public vo 阅读全文
posted @ 2022-06-11 19:14 安家小皮孩 阅读(21) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示