04 2021 档案

摘要:它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的。偏移性:Date中的年份是从1900开始的,而月份都从0开始。格式化:格式化只对Date有用,Calendar则不行。此外,它们也不是线程安全的;不能处理闰秒等。  LocalDate、LocalTime、LocalDateTime 类 阅读全文
posted @ 2021-04-17 11:03 小白冲 阅读(159) 评论(0) 推荐(0)
摘要:4. java.util.Calendar( 日历)类 类 Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。 获取Calendar实例的方法 使用Calendar.getInstance()方法 调用它的子类GregorianCalendar的构造器。 一个Cale 阅读全文
posted @ 2021-04-17 10:39 小白冲 阅读(314) 评论(0) 推荐(0)
摘要:import org.junit.Test; /** * @author CH * @create 2021 上午 11:23 */ public class IDEADebug { @Test public void testStringBuffer(){ String str = null; S 阅读全文
posted @ 2021-04-16 21:51 小白冲 阅读(138) 评论(0) 推荐(0)
摘要:/* 获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodefabcdef";str2 = "cvhellobnm"提示:将短的那个串进行长度依次递减的子串与较长的串比较。 */ //前提:两个字符串中只有一个最大相同子串 import org.junit.Test 阅读全文
posted @ 2021-04-16 19:17 小白冲 阅读(675) 评论(0) 推荐(0)
摘要:/*获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkaabkskab” 中出现的次数*/ import org.testng.annotations.Test; /** * @author CH * @create 2021 上午 10:26 */ 阅读全文
posted @ 2021-04-16 11:04 小白冲 阅读(1081) 评论(0) 推荐(2)
摘要:将一个字符串进行反转:将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”方式一:转换为char[] public String reverse(String str,int startIndex,int endIndex){ if(str != null){ char[] a 阅读全文
posted @ 2021-04-16 00:40 小白冲 阅读(976) 评论(0) 推荐(1)
摘要:/*java.util.Date类 java.sql.Date类1.两个构造器的使用 >构造器一:Date():创建一个对应当前时间的Date对象 >构造器二:创建指定毫秒数的Date对象2.两个方法的使用 >toString():显示当前的年、月、日、时、分、秒 >getTime():获取当前Da 阅读全文
posted @ 2021-04-15 21:56 小白冲 阅读(130) 评论(0) 推荐(0)
摘要:/*String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列;底层使用char[]存储StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的 阅读全文
posted @ 2021-04-15 00:26 小白冲 阅读(149) 评论(0) 推荐(1)
摘要:/*String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用 阅读全文
posted @ 2021-04-14 23:04 小白冲 阅读(315) 评论(0) 推荐(0)
摘要: int length() :返回字符串的长度: return value.length char charAt(int index): : 返回某索引处的字符return value[index] boolean isEmpty() :判断是否是空字符串:return value.lengt 阅读全文
posted @ 2021-04-14 20:14 小白冲 阅读(120) 评论(0) 推荐(0)
摘要:/*String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用 阅读全文
posted @ 2021-04-13 20:05 小白冲 阅读(105) 评论(0) 推荐(0)
摘要:/** * 创建线程的方式四:使用线程池 * * 好处: * 1.提高响应速度(减少了创建新线程的时间) * 2.降低资源消耗(重复利用线程池中线程,不需要每次都创建) * 3.便于线程管理 * corePoolSize:核心池的大小 * maximumPoolSize:最大线程数 * keepAl 阅读全文
posted @ 2021-04-13 13:54 小白冲 阅读(113) 评论(0) 推荐(0)
摘要:/** * 创建线程的方式三:实现Callable接口。 JDK 5.0新增 * * * 如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? * 1. call()可以有返回值的。 * 2. call()可以抛出异常,被外面的操作捕获,获取异常的信息 * 阅读全文
posted @ 2021-04-12 20:54 小白冲 阅读(131) 评论(0) 推荐(0)
摘要:/** * 线程通信的例子:使用两个线程打印 1-100。线程1, 线程2 交替打印 * * 涉及到的三个方法: * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。 * notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高 阅读全文
posted @ 2021-04-12 11:04 小白冲 阅读(118) 评论(0) 推荐(0)
摘要:/** * 银行有一个账户。 有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。 分析: 1.是否是多线程问题? 是,两个储户线程 2.是否有共享数据? 有,账户(或账户余额) 3.是否有线程安全问题?有 4.需要考虑如何解决线程安全问题?同步机制:有三种方式。 阅读全文
posted @ 2021-04-12 10:38 小白冲 阅读(265) 评论(0) 推荐(0)
摘要:Lock( 锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程 阅读全文
posted @ 2021-04-12 10:20 小白冲 阅读(104) 评论(0) 推荐(0)
摘要:/** * 演示线程的死锁问题 * * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃, * 都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 * * 2.说明: * 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续 * 2)我们使用同步时,要避免 阅读全文
posted @ 2021-04-12 09:46 小白冲 阅读(104) 评论(0) 推荐(0)
摘要: 同步锁机制:在《Thinking in Java》中,是这么说的:对于并发工作,你需要某种方式来防止两个任务访问相同的资源(其实就是共享资源竞争)。 防止这种冲突的方法就是当资源被一个任务使用时,在其上加锁。第一个访问某项资源的任务必须锁定这项资源,使其他任务在其被解锁之前,就无法访问它了,而在 阅读全文
posted @ 2021-04-12 01:11 小白冲 阅读(273) 评论(0) 推荐(0)
摘要:基础知识点:  JDK 中用Thread.State 类定义了线程的几种状态要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的 五种状态: 新建: 当一个Thread类或其子类的对象被声明并创建时,新生 阅读全文
posted @ 2021-04-11 19:49 小白冲 阅读(256) 评论(2) 推荐(1)
摘要:继承方式和实现方式的联系与区别public class Thread extends Object implements Runnable 区别 继承Thread:线程代码存放Thread子类run方法中。 实现Runnable:线程代码存在接口的子类的run方法。 实现方式的好处 避免了单继 阅读全文
posted @ 2021-04-11 07:47 小白冲 阅读(409) 评论(0) 推荐(0)
摘要:/** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对象 * 4. 将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 * 5. 通过T 阅读全文
posted @ 2021-04-11 07:40 小白冲 阅读(194) 评论(0) 推荐(0)
摘要:/** * 测试Thread中的常用方法: * 1. start():启动当前线程;调用当前线程的run() * 2. run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 * 3. currentThread():静态方法,返回执行当前代码的线程 * 4. g 阅读全文
posted @ 2021-04-11 01:53 小白冲 阅读(204) 评论(0) 推荐(0)
摘要:* 多线程的创建,方式一:继承于Thread类* 1. 创建一个继承于Thread类的子类* 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中* 3. 创建Thread类的子类的对象* 4. 通过此对象调用start()* <p>* 例子:遍历100以内的所有的偶数 阅读全文
posted @ 2021-04-10 17:15 小白冲 阅读(101) 评论(0) 推荐(0)
摘要:01. 程序(programm)概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 02. 进程(process)概念:程序的一次执行过程,或是正在运行的一个程序。说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 03. 线程(thread)概念:进 阅读全文
posted @ 2021-04-07 01:35 小白冲 阅读(368) 评论(0) 推荐(0)
摘要:/* * 如何自定义异常类? * 1. 继承于现有的异常结构:RuntimeException 、Exception * 2. 提供全局常量:serialVersionUID//对类的标识 * 3. 提供重载的构造器 */ package com.ch.java2; /* * 如何自定义异常类? * 阅读全文
posted @ 2021-04-05 00:40 小白冲 阅读(832) 评论(0) 推荐(0)
摘要:/* * 异常处理的方式二:throws + 异常类型 * * 1. "throws + 异常类型"写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。 * 一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常 * 类型时,就会被抛出。异常代码后续的 阅读全文
posted @ 2021-04-04 10:23 小白冲 阅读(215) 评论(0) 推荐(0)
摘要:/* * 一、异常的处理:抓抛模型 * * 过程一:"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象。 * 并将此对象抛出。 * 一旦抛出对象以后,其后的代码就不再执行。 * * 关于异常对象的产生:① 系统自动生成的异常对象 * ② 手动的生成一个异常对象,并 阅读全文
posted @ 2021-04-04 00:41 小白冲 阅读(404) 评论(0) 推荐(0)
摘要:/* * 一、异常体系结构 * * java.lang.Throwable * | java.lang.Error:一般不编写针对性的代码进行处理。 * | java.lang.Exception:可以进行异常的处理 * | 编译时异常(checked) * | IOException * | Fi 阅读全文
posted @ 2021-04-03 19:05 小白冲 阅读(102) 评论(0) 推荐(0)
摘要:关键字:abstract abstract: 抽象的1.可以用来修饰:类、方法2.具体的:abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 阅读全文
posted @ 2021-04-03 10:37 小白冲 阅读(140) 评论(0) 推荐(0)
摘要:/* * 类的内部成员之五:内部类 * 1. Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类 * * 2.内部类的分类:成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内) * * 3.成员内部类: * 一方面,作为外部类的成员: * >调用外部类 阅读全文
posted @ 2021-04-03 00:42 小白冲 阅读(143) 评论(0) 推荐(0)
摘要:package com.ch.java1; interface A { int x = 0; } class B { int x = 1; } class C extends B implements A { public void pX() { // System.out.println(x);/ 阅读全文
posted @ 2021-04-01 10:52 小白冲 阅读(97) 评论(0) 推荐(0)
摘要:在开发中,常看到一个类不是去继承一个已经实现好的类,而是要么继承抽象类,要么实现接口。 阅读全文
posted @ 2021-04-01 10:48 小白冲 阅读(66) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-04-01 10:36 小白冲 阅读(70) 评论(0) 推荐(0)
摘要:应用场景: 安全代理:屏蔽对真实角色的直接访问。 远程代理:通过代理类处理远程方法调用(RMI) 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象比如你要开发一个大文档查看软件,大文档中有大的图片,有可能一个图片有100MB,在打开文件时,不可能将所有的图片都显示出来,这样就可以使用代 阅读全文
posted @ 2021-04-01 10:20 小白冲 阅读(463) 评论(0) 推荐(0)
摘要:/* * 接口的使用 * 1.接口使用上也满足多态性 * 2.接口,实际上就是定义了一种规范 * 3.开发中,体会面向接口编程! */ public class USBTest { public static void main(String[] args) { Computer com = new 阅读全文
posted @ 2021-04-01 10:11 小白冲 阅读(158) 评论(0) 推荐(0)
摘要:概述 /* * 接口的使用 * 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能定义全局常量和抽象方法 * >全局常量:public static final的.但是书写时,可以省略不写 阅读全文
posted @ 2021-04-01 01:28 小白冲 阅读(602) 评论(0) 推荐(0)