自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 [java基础]日期类

2. java.util.Calendar完成日期数据的逻辑运算运算思路:将日期数据传输给Calender(Calendar提供了很多静态常量)静态常量:调用相关方法进行计算。calendar实例

2022-07-05 15:13:03 114

原创 [java基础]反射三:反射案例

现在又两个类Student与Teacher,student有方法learn(),Teacher有方法,需要根据需求选择执行哪个类的方法(不可都执行,只能执行一个)在上述情况下,需要修改class文件才能达到目的,于是有以下需求:要求:在不能改变类的代码前提下,可以创建任意类的对象,可以执行任意方法实现:步骤:src目录下创建pro.properties文件测试类:在这种方式下,只需要修改配置文件即可实现“在不能改变类的代码前提下,可以创建任意类的对象,可以执行任意方法”。那么问题来了,第一种方式在

2022-07-05 11:57:59 156

原创 [java基础]反射二:Class对象的获取功能

获取成员变量Field对象常用方法:输出结果:获取构造方法Constructor创建对象:运行结果:获取成员方法Method对象方法:Object invoke(Object obj,Object… args):执行方法String getName:获取方法名setAccessible(boolean flag)运行结果:......

2022-07-05 11:56:19 145

原创 [java基础]反射一:反射概述与获取class对象的方式

反射:将类的各个组成部分封装为其他对象,这就是反射机制。(官方说法)在程序运行期间动态的创建对象,且在编写代码/编译过程,不知道要创建的是哪个对象,只有在运行期间才知道要创建的对象是谁。反射是框架设计的灵魂,框架:半成品软件。可以在框架的基础上进行软件开发,简化代码。Java代码在计算机中经历的三个阶段:优点:Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象。(源代码阶段)*多用于配置文件,将类名定义在配置文件中。读取文件,加载类。类名.class:通过类名属性class

2022-07-04 22:14:34 156

原创 [并发编程]JUC工具类以一:CountDownLatch、CyclicBarrier、Semaphore

CountDownLatch:减法计数器可以用来倒计时,当两个线程同时执行时,如果一个线程优先执行,可以使用计数器当计数器清零的时候,再让另一个线程执行。countDown():计数器减一(计数器参数是多少,countDown就需要执行多少次,否则未清零就不会唤醒其他线程。)await():计数器停止,唤醒其他线程。在实时系统中的使用场景CyclicBarrier:加法计数器new CyclicBarrier(int parties, Runnable barrierAction),当计数等于partie

2022-07-01 21:55:42 60

原创 [并发编程]ConcurrentModificationException

ConcurrentModificationException: 并发修改异常,在多线程中同时读和写,容易出现这种异常。异常示例:ArraryList是线程不安全的,同时读和写就容易出现异常ConcurrentModificationException。当我们注释掉写的步骤“list.add(“a”);”只留下读的步骤,不会出现这个异常。当我们注释掉写的步骤“System.out.println(list);”只留下写的步骤,也不会出现这个异常。那么只要让读和写不同时进行就可以解决该异常。解决方

2022-06-30 22:33:17 118

原创 [多线程]多线程售票遇到售出负票和死锁

用三个线程模拟三个售票员售票。可能出现的问题:1.出现余票为负数。2.出现死锁(类似死锁)。Test类:出现余票为负数资源类:运行结果:解决方式:这种情况是在进行if判断时,三个线程的余票判断都为2。但是往下走时是同步的,第一个线程执行结束后,为余票为1。第二个线程结束为0,第三个线程结束余票则为0–为-1。方式:在进入同步代码块之后再进行一个if(surplusTicket.........

2022-06-29 23:07:16 317

原创 [Spring]Spring概述

Spring是什么?spring是一个主流的Javaweb开发框架,Spring是分层的 Java SE/EE full-stack 轻量级开源框架,以IOC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为内核,使用基本的JavaBean完成以前只可能由EJB完成的工作,取代了EJB臃肿和低效的开发模式。spring的体系结构(图片来源于网络)spring的优点?低侵入式设计独立于各种应用服务器..

2022-05-04 20:24:07 236

原创 [多线程]线程池

使用线程池的背景:线程的经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。使用线程池的思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回线程池中。避免频繁创建销毁,实现重复利用。类似生活中的公共交通工具。优点:提高响应速度。降低资源消耗。便于线程管理。ExecutorService和ExecutorsExecutorService:真正的线程池接口。常见子类ThreadPoolExecutor。Executors:工具类、线程池的工厂类,用于创

2022-05-04 09:40:05 50

原创 [多线程]线程协作两种方式管程法与信号灯法

管程法:A类线程将生产好的数据放入缓冲区,B类线程从缓冲区拿出数据。该方法需要定义一个缓冲区,用缓冲区存放共享资源,管理共享资源。以下为代码示例:public class ProducerConsumer { public static void main(String[] args) { SynContainer synContainer = new SynContainer(); Producer producer = new Producer(synCo

2022-05-04 09:25:55 130

原创 [多线程]线程协作

什么是线程协作?线程协作指不同线程驱动的任务相互依赖,依赖一般就是对共享资源的依赖;有线程协作一定会有资源共享,有共享就有竞争,有竞争就会有线程安全问题;但是synchronized与lock只能实现线程同步,并不能实现线程的协作。而实现线程协作,则需要wait()与notify()方法。wait与notifywait():表示线程一直等待,直到其他线程通知,与sleep不同,它会释放锁。wait(long timeout):指定等待的毫秒数。notify():唤醒一个处于等待状态的线程。n

2022-05-03 22:39:56 156

原创 [多线程]lock锁

什么是lock锁?在多线程应用中,为了实现线程同步,用到了锁的概念,比较常用的是synchronized关键字,但是synchronized是隐式锁,那么在jdk5.0开始,出现了显示定义同步锁对象实现同步。这个显示锁就是lock锁,可以显示的加锁和释放锁。lock锁的使用java.util.concurrent.locks.lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对lock对象加锁,线程开始访问共享资源之前应先获得lock对象。Reenta

2022-05-03 22:25:46 478

原创 [多线程]死锁

死锁什么是死锁?多个线程各自独自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或多个线程都等待对方释放资源,都停止执行的情况,这就是死锁。某一同步块同时拥有“两个以上对象的锁“时,就可能发生死锁问题。产生死锁的四个必要条件?互斥条件:一个资源每次只能被一个进程使用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。如何预防死锁?

2022-05-03 22:06:50 50

原创 [java基础]Java的数据类型与类型转换

数据类型Java数据类型分为两类:基本数据类型、引用数据类型​ 基本数据类型:byte(1字节)、short(2)、int(4)、long(8)、char(2)、float(4)、double(8)、boolean(占一位)​ 引用数据类型:数组、类、接口进制二进制:0b开头,int y = 0b00101010;八进制:0开头,int y=06;十进制:int y = 6十六进制:0x开头int a = 0x100F;类型转换Java是强类型语言

2022-05-03 21:57:55 450

原创 [java基础]集合中的Map集合及其实现类

集合是什么? 为什么使用集合?集合的简单理解:长度可变、数据类型可不同的动态数组。数组长度固定,且数据类型单一,不满足需要动态的类型不同的数据组情况。如顾客购买记录。Map集合存入的数据为一对key-value,key-value由一个Entry包裹。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7gCPXBIs-1650979074303)(F:\Desktop\JavaLearn\image\Map数据结构.png)]方法描述i.

2022-04-26 21:19:32 461

原创 [java基础]Java集合set

JavaSE中的集合框架下set集合的一些知识点。

2022-04-25 22:54:51 830

原创 [java基础]Java集合List

Java的list集合作用、list集合方法介绍。list集合的实现类简单介绍。

2022-04-24 22:52:34 677

原创 [Java基础]String、StringBuffer、StringBuilder区别

String、StringBuffer、StringBuilder区别String:不可变,线程安全的,效率低。StringBuffer:可变,线程安全的,效率低。StringBuilder:可变,线程不安全,效率低。(用法与StringBuilder基本一致)StringString对象的值为什么不能修改?String的底层是final修饰的cahr[]。在String中空不等于Null。Null是引用的内容不存在(不指向任何对象),不指向任何对象。空是指引用指向某个对象,但是对象的

2022-04-22 23:08:17 54

原创 [Java基础]Java实用类:枚举(Enum)、Math、Random、String的方法介绍

枚举(Enum)枚举是一种有确定值区间的数据类型,本质上是一个类,具有简洁、安全、方便等特点。枚举的值被约束到了一个特定的范围内,只能从这个范围以内取值。为什么要有枚举?因为在描述某些对象的属性时,该属性的值不能随便定义(如一年只有四季、一周只有七天),必须在某个特定区间内取值。出于对数据安全的考虑,类似这种有特定取值范围的数据,我们就可以使用枚举来描述。枚举的组成枚举由一组常量的类型指定一个取值区间,我们只能从该区间取值。public enum Week { MONDAY,..

2022-04-21 21:53:58 480 2

原创 [Java基础]关于Java泛型的介绍、上下限、泛型接口

关于Java泛型的介绍、上下限、泛型接口

2022-04-20 23:32:27 554

原创 [Java基础]静态代理

Java静态代理什么是Java静态代理?代理是什么?代理的概念在实际生活中也存在,例如你要买房子,但是你不想去大量的寻找房源,那么你就像有人代替你去寻找房源,你只需等它找好房子,你决定买不买;张三要打官司,但他觉得自己辩护不靠谱,决定找一个律师去打官司,张三只需配合律师就行;某人要办婚礼,但是不想自己去订酒店,找主持人,制定婚礼的活动进程,那么就要找一个婚庆公司代理这些事,某人只需要开开心心结婚就行了。静态:代理又是什么呢?在Java程序运行时,如果代理的代码已经写好,那么这种代理就是静态代理。优点

2022-04-19 23:14:16 78

原创 [多线程]Synchronized锁定的对象解析

Java中关于Synchronized在不同情况下锁定的对象的解析。

2022-04-18 22:27:44 320

原创 [Java基础]关于子类是否可以继承父类静态或私有方法与属性的看法

关于子类是否可以继承父类静态方法与属性的看法一、私有方法与属性我们调用一个自定义类的非静态属性或方法,是采用创建一个实例对象,用实例对象+.来调用。例如如调用孩子这个类的实例的名字(属性)和说话行为(方法)。Child child = new Child();child.name;child.say(); 如果没有这个属性或方法那么会报错“Cannot resolve symbol ‘xxx’ ”。但是如果child调用仅在父类Father中定义的私有的name以及say()方法,则报错“

2022-04-16 23:50:26 1967 9

原创 [多线程]Java多线程创建的三种方式

本文阐述了Java多线程的三种创建方式,分别式继承Thread类、实现runnable接口、实现callable接口

2022-04-15 19:35:26 295

原创 idea生成Java的doc文档

idea生成doc文档Javadoc用来生成自己的API文档的参数信息@author 作者名@version 版本@since 指明需最早使用的jdk版本@param 参数名@return 返回值异常@throw 异常抛出情况使用方法命令行:javadoc -encoding UTF-8 -charset UTF-8 ***.javaidea快捷:1. 编写注释文档2. idea快捷生成3.在指定的存放API的文档找到index.html文件,打开可见..

2022-04-14 22:19:58 924

原创 java短路运算与程序运行机制

Java的短路运算与程序运行机制

2022-04-14 19:16:04 1385

原创 记录Mark Down一些基本样式学习

记录MarkDown的一些基本样式的学习

2022-04-13 18:39:14 542

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除