02 2021 档案
摘要:包结构 MyList 接口 1 package day2_19.inter; 2 3 /** 4 * 将arryList 和 linkedList 共性的方法进行抽取 >保证体系的完整性 5 * 6 * @Author Tianhao 7 * @create 2021-02-19-17:26 8 *
阅读全文
摘要:类的结构 接口:MyList 1 package day2_19.inter; 2 3 /** 4 * 将arryList 和 linkedList 共性的方法进行抽取 >保证体系的完整性 5 * 6 * @Author Tianhao 7 * @create 2021-02-19-17:26 8
阅读全文
摘要:1 package day2_18; 2 3 import org.junit.Test; 4 5 /** 6 7 1.ArrayList的接口框架 8 | Collection接口,单列集合,存储一个一个的对象 9 | List接口:存储有序,可重复的数据 -->“动态”数组,替代原有的数组 10
阅读全文
摘要:1 package day2_18; 2 3 import org.junit.Test; 4 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.Iterator; 8 9 /** 10 *
阅读全文
摘要:1 package day2_18; 2 3 import org.junit.Test; 4 5 import java.util.*; 6 7 /** 8 * 9 * 一、集合框架的概数 10 * 1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器 11 * 说明:此时的存储,主要
阅读全文
摘要:1 class MyLinkedList<E> { 2 3 int size = 0;//集合元素的个数 4 5 Node<E> first;//指向第一个元素 6 Node<E> last;//指向最后一个元素 7 8 //元素 9 private static class Node<E> { 1
阅读全文
摘要:需求:对Calculator的加减乘除方法检查是否正确如果有问题,将出现问题的方法名称和问题名称、原因、次数记录到文件中 Calculator类 1 package day2_17; 2 3 /** 4 * @Author Tianhao 5 * @create 2021-02-17-15:12 6
阅读全文
摘要:Person类 1 package day2_17; 2 3 /** 4 * @Author Tianhao 5 * @create 2021-02-17-13:35 6 */ 7 8 9 public class Person { 10 11 public void eat() { 12 Syst
阅读全文
摘要:1 package day2_16; 2 3 /** 4 *一、枚举类的使用 5 * 1.类的对象是有限,确定的 6 * 2.需要定义一组常量时 7 * 3.枚举类只有一个对象时,可以作为单例模式的实现方式 8 * 9 *二、如何定义枚举类 10 * jdk5之前自定义枚举类 11 * jdk5之后
阅读全文
摘要:1 package day2_15; 2 3 import org.junit.Test; 4 5 import java.time.Instant; 6 import java.time.LocalDateTime; 7 import java.time.OffsetDateTime; 8 imp
阅读全文
摘要:1 package day2_15; 2 3 import org.junit.Test; 4 5 import java.text.ParseException; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 9 /
阅读全文
摘要:1 package day2_15; 2 3 import org.junit.Test; 4 5 import java.math.BigDecimal; 6 import java.math.BigInteger; 7 8 /** 9 * @Author Tianhao 10 * @create
阅读全文
摘要:1 package day2_15; 2 3 import org.junit.Test; 4 5 import java.util.Arrays; 6 import java.util.Comparator; 7 8 /** 9 * 一:说明:Java中的对象,正常情况下,只能进行比较:== 或
阅读全文
摘要:1 package day2_14; 2 3 import org.junit.Test; 4 5 import java.time.*; 6 import java.time.format.DateTimeFormatter; 7 import java.time.format.FormatSty
阅读全文
摘要:1 package day2_9; 2 3 import java.util.Arrays; 4 5 /** 6 * @Author Tianhao 7 * @create 2021-02-09-15:05 8 */ 9 public class StringExer { 10 11 12 13 /
阅读全文
摘要:上篇博客的第二题,我昨天看了康师傅的解法,当时觉得看懂了,但晚上全看春晚,没有及时的跟着敲出来,今天凭着对昨天的理解记忆,来敲出来,结果敲到下面这步,出现了问题 1 //实现数组的反转,将字符串中指定部分进行反转 2 //比如“abcdef",将其中的cde反转后,输出为abedcf 3 //方式二
阅读全文
摘要:1 package day2_9; 2 3 import java.util.Arrays; 4 5 /** 6 * @Author Tianhao 7 * @create 2021-02-09-15:05 8 */ 9 public class StringExer { 10 11 12 13 /
阅读全文
摘要:1 package day2_7; 2 3 import org.junit.Test; 4 5 /** 6 * @Author Tianhao 7 * @create 2021-02-09-14:58 8 */ 9 public class StringTest2 { 10 11 /** 12 *
阅读全文
摘要:1 package day1_7; 2 3 public class PrintlnTest { 4 public static void main(String[] args) { 5 //下面都是调用PrintStream类的println()重载方法 6 7 int[] arr = new i
阅读全文
摘要:1 package day2_7; 2 3 import org.junit.Test; 4 5 /** 6 * String:字符串,一般使用一对 "" 引起来表示 7 * 8 * public final class String 9 * implements java.io.Serializa
阅读全文
摘要:1 package day2_6; 2 3 import java.util.concurrent.*; 4 5 /** 6 * 创建线程的方式四:使用线程池 7 * 8 * 开发中用的也最多,好处: 9 * 1.提高响应速度(减少了创建新线程的时间) 10 * 2.降低资源消耗(重复利用线程池中的
阅读全文
摘要:1 package day2_6; 2 3 import java.util.concurrent.Callable; 4 import java.util.concurrent.ExecutionException; 5 import java.util.concurrent.FutureTask
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 线程通信的应用 经典例题: 生产者/消费者问题 5 * <p> 6 * 生产者(Productor)将产品交给店员(Clerk),而消费者(Consumer)从店员处取走产品, 7 * 店员一次只能持有固定数量范围的产品(比如 1-20个)
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 线程通信:线程1和线程2,轮流交替打印1-100 5 * 6 * 涉及到的三个方法: 7 * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器 8 * notify():一旦执行此方法,就会唤醒被wait的一个线程,如
阅读全文
摘要:1 package day2_4; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 银行有一个账户。 7 * 两个储户向同一个账户里存钱,每个储户都是存3000元,分三次,每次存1000。 8 * 每次存完打印账户余额
阅读全文
摘要:1 package day2_4; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 解决线程安全问题方式三:loke锁 JDK5.0新增 7 * 8 * 1.面试题:synchronized 与 lock的异同? 9
阅读全文
摘要:1 package day2_4; 2 3 import org.junit.Test; 4 5 /** 6 * 单例设计模式 7 * 1.1是什么 8 * 就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例 9 * 1.2 好处 10 * 由于单例模式只生成一个实例,减少了系统
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 使用同步方法解决继承Thread类的线程安全问题 5 * 6 * <p> 7 * 如果操作共享数据的代码完整的声明在一个方法中,在方法定义上,用synchronized修饰,即同步方法 8 * 9 * 关于同步方法的总结: 10 * 1.同
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 使用同步方法解决实现Runnbale接口的线程安全问题 5 * 6 * <p> 7 * 如果操作共享数据的代码完整的声明在一个方法中,在方法定义上,用synchronized修饰,即同步方法 8 * 9 * 关于同步方法的总结: 10 *
阅读全文
摘要:1 package day2_4; 2 3 /** 4 *例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口 5 * 1.问题:卖票过程中,出现了重票、错票的情况 >出现了线程安全问题 6 * 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操
阅读全文
摘要:1 package day2_4; 2 3 /** 4 *例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口 5 * 1.问题:卖票过程中,出现了重票、错票的情况 >出现了线程安全问题 6 * 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口 5 * 因为三个线程是共享Window2对象的,所以也是共享ticket变量的,自然就不用static修饰 ticket了 6 * 仍存在线程安全问题,待解决(还是会有
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 例子:创建三个窗口卖票,总票数为100张,使用继承Thread的方式 5 * 因为没有线程对象都有自己的ticket,所以每个窗口都卖100张票 6 * 解决方法时将ticket改为 static,但仍然有问题:执行过程中都会卖相同号的票
阅读全文
摘要:1 package day2_3; 2 3 /** 4 * 测试Thread中的常用方法 5 * 1.start() 启动当前线程,调用当前线程的run() 6 * 2.run() 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 7 * 3.currentThread(
阅读全文
摘要:1 package day2_4; 2 3 /** 4 * 创建线程的方式二:实现Runnable接口 5 * 1.实现Runnable接口,并实现其抽象方法run() 6 * 2.创建这个实现类的对象 7 * 3.将这个是实现类对象作为参数传递到Thread类的构造器中,并创建Thread类的对象
阅读全文
摘要:1 package day2_3; 2 3 /** 4 * 多线程的创建,方式一:继承与Thread类 5 * 1.创建一个继承于Thread类的子类 6 * 2.重写Thread类的run() >将此线程执行的操作声明在run()方法中 7 * 3.创建子类对象 8 * 4.通过子类对象调用sta
阅读全文
摘要:整体结构 工具包 Date类(员工数据) 1 package day2_1_project3.util; 2 3 public class Data { 4 public static final int EMPLOYEE = 10; 5 public static final int PROGRA
阅读全文

浙公网安备 33010602011771号