10 2021 档案
摘要:1 package com.atfu.java01; 2 3 import org.junit.Test; 4 5 /** 6 * 7 * 8 * @author fu jingchao 9 * @creat 2021/10/31-15:03 10 */ 11 public class String
阅读全文
摘要:/*String、StringBuffer和StringBuilder三者的异同?String:不可变的字符序列,底层使用char[]存储StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的
阅读全文
摘要:/** * * 1.String >基本数据类型、包装类:调用包装类的静态方法:parseXxx(str) * 基本数据类型、包装类 >String:调用String重载的valueOf(xxx) * * 2.String 与char[]之间的转换 * String >char[]:调用String
阅读全文
摘要:/** * 1. * int Length():返回字符串的长度 return value.length * char charAt(int index):返回某索引处的字符 return value[index] * boolean isEmpty():判断是否是空字符串 return value
阅读全文
摘要:/** * 1.String声明为final的,不可被继承 * 2.String实现了Serializable接口:表示字符串是支持序列化的 * 实现了 Comparable接口:表示String可以比较大小 * 3.String内部定义了final char[] value用于存储字符串数据 *
阅读全文
摘要:1 package com.atfu.java02; 2 3 import java.util.concurrent.ExecutorService; 4 import java.util.concurrent.Executors; 5 import java.util.concurrent.Thr
阅读全文
摘要:1 package com.atfu.java02; 2 3 import java.util.concurrent.Callable; 4 import java.util.concurrent.ExecutionException; 5 import java.util.concurrent.F
阅读全文
摘要:/** * 经典例题:生产者/消费者问题: * 生产者(Producer)将产品交给店员(clerk),而消费者(customer)从店员处取走产品,店员一次只能持有固定数量 * 产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者 * 继续生产
阅读全文
摘要:/** * 线程通信的例子:使用两个线程打印1-100.线程1,线程2 交替打印 * *涉及到的三个方法: * wait():一旦执行此方法,当前线程就会进入阻塞状态,并释放同步监视器。 * notify():一旦执行此方法,就会唤醒被wait的线程。如果有多个线程被wait,就唤醒优先级高的那个
阅读全文
摘要:1 package com.atfu.java01; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 解决线程安全问题的方式三:Lcok锁 Jdk5.0新增 7 * 1.面试题:synchronized 与 lock的
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 演示线程的死锁问题 5 * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等对方放弃自己需要的同步资源,就形成了线程的死锁 6 * 7 * 2.说明: 8 * 1)出现死锁后,不会出现异常,不会出现提示,
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 使用同步的方式将单例模式中的懒汉式改写为线程安全的 5 * 6 * @author fu jingchao 7 * @creat 2021/10/18-21:47 8 */ 9 public class BankTest
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用继承Thread类的方式。 5 * 6 *使用同步方法解决继承Thread类的方式的线程安全问题 7 * 8 * 关于同步方法的总结: 9 * 1.同步方法任然涉及到同步监视器
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用继承Thread类的方式。 5 *存在线程安全问题,待解决。 6 * 7 *使用同步代码块解决继承Thread类的方式的线程安全问题 8 * 9 * 说明:在使用继承Threa
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 5 * 使用同步方法解决Runnable接口线程的安全问题 6 * 7 * @author fu jingchao 8 * @creat 2021/10/17-15:48 9 */ 10 class Window3 imp
阅读全文
摘要:* 例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口的方式。* 1.问题:卖票过程中出现了重票和错票 >线程的安全问题* 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。* 3.如何解决:当一个线程a在操作ticket时,其他线程不
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口的方式。 5 * 6 * 7 * @author fu jingchao 8 * @creat 2021/10/15-17:09 9 */ 10 cla
阅读全文
摘要:1 package com.atfu.java01; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用继承Thread类的方式。 5 *存在线程安全问题,待解决。 6 * 7 * 8 * 9 * 10 * @author fu jingchao 11 * @creat 2021
阅读全文
摘要:1 package com.atfu.exer; 2 3 /** 4 * 练习:创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数 5 * 6 * 7 * @author fu jingchao 8 * @creat 2021/10/13-22:10 9 */ 10 p
阅读全文
摘要:* 测试Thread类中的常用方法:* 1.start() :启动当前线程;调用当前线程的run()* 2.run() :通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中* 3.currentThread():静态方法,返回代码当前执行的线程* 4.getName():获
阅读全文
摘要:* 多线程的创建,方式一:继承于Thread类* 1.创建一个继承于Thread类的子类* 2.重写Thread类的run()-->将此线程执行的操作声明在run()中* 3.创建Thread类的子类的对象* 4.通过此对象调用Thread类的start():①启动当前线程;②调用当前线程的run(
阅读全文
摘要:1 package com.fu.java5; 2 3 /** 4 * 如何自定义异常类 5 * 1.继承现有的异常结构:RuntimeException、Exception 6 * 2.提供全局常量:serialVersionUID; 7 * 3.提供重载的构造器 8 * 9 * 10 */ 11
阅读全文
摘要:1 package com.fu.java5; 2 3 import org.junit.jupiter.api.Test; 4 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoun
阅读全文
摘要:1 package com.fu.java5; 2 3 import org.junit.jupiter.api.Test; 4 5 /** 6 * 一、异常的处理;抓抛模型 7 * 过程一:“抛” :程序在正常执行的过程中,一旦出现异常,就会在异常代码出生成一个对应异常的对象。 8 * 并将此对象
阅读全文
摘要:1 package com.fu.java5; 2 3 /** 4 * Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况,比如StackOverflowError 5 * 一般不编写针对性的代码进行处理。 6 */ 7 public class ErrorTe
阅读全文

浙公网安备 33010602011771号