自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java否极泰来

学习、记录Java

  • 博客(12)
  • 收藏
  • 关注

原创 【Java】为什么char占两个字符却能存汉字

问题:Java的char占两个字节,而汉字的UTF-8编码需要至少三个字节,为什么char可以存储汉字?参考:https://blog.csdn.net/u010297957/article/details/48495791Unicode字符集起源ASCII(American Standard Code for Information Interchange,美国标准信息交换代码),这是个单字节编码表,它能最多能表示256个字符(但实际上只用了7bit,128个。ISO8859-1使用8bit来表示

2021-12-03 18:26:08 1954

原创 【Java】异常处理

ThrowableErrorError编译时不可检查,常见的StackOverflowError、OOMError/** * @author:sy104 * @date: 2021/11/28 * @desc: Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的 */public class ErrorDemo01 { public static void main(String[] args) { new ErrorDemo01().a(

2021-12-02 22:38:54 409

原创 【Java】Callable创建线程用到的适配器模式

Callable的用法创建多线程的第三种方式是使用Callable接口:实现Callable接口创建FutureTask实例创建Thread实例class MyThread implements Callable<String>{ @Override public String call() throws Exception { System.out.println("call"); TimeUnit.SECONDS.sleep(5)

2021-11-25 20:03:16 581

原创 【Java】适配器模式的使用

现在有一根老的网线,可以连接上网:public class Adaptee { public void request(){ System.out.println("连接网线上网"); }}现在买了一台新电脑,想要用老网线上网,但是发现插不上:public class Computer { public void net(){ }}于是买来一个适配器,适配器符合接口:public interface Net2Usb { public

2021-11-25 18:40:01 379 1

原创 【Java】双亲委派机制分析

双亲委派机制:当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。类加载器从上往下依次是:BootstrapClassLoader(启动类加载器)c++编写,加载java核心库 java.*,无法直接获取到启动类加载器的引用,不允许直接通过引用进行操作。ExtClassLoader (标准扩展类加载器)java编写,加载扩展库,如classpath中的jre ,javax.*,可以通过引用获取

2021-11-21 16:18:46 310

原创 【Java】线程的概念和创建方法

线程的概念核心概念线程就是独立的执行路径主线程也是main(),为系统入口,用于执行整个程序后台也有线程,如gc线程的运行由调度器安排,与操作系统相关,先后顺序不能人为干预对同一份资源操作的时候,存在资源抢夺问题,加入并发控制线程带来额外开销,如cpu调度时间每个线程在自己的工作内存交互,内存控制不当会造成数据不一致进程和线程的区别进程是程序的一次执行过程,是系统分配资源的单位。一个进程中至少有一个线程,线程是CPU调度和执行的单位。线程的创建(Thread,Runnable

2021-11-20 15:13:10 363

原创 【Java】WeakHashMap源码阅读笔记

HashMap中如果一个键指向的对象没有其他任何引用指向它,就不会被GC回收,需要手动remove。如果想要这种键值对被自动回收怎么办?带着问题看一下WeakHashMap的源码WeakHashMap的属性和HashMap中基本一样,不过WeakHashMap没有红黑树相关操作,还多了个ReferenceQueue。ReferenceQueue存的是什么呢?这里可以推出是那些指向被回收的对象的弱引用。 /** * The default initial capacity -- MUS

2021-11-19 17:48:50 217

原创 【Java】弱引用的相关使用

Java的四种引用1.强引用最常见的引用类型,即使内存不够也不会回收。思考:obj1这个强引用自身是否也是对象?占用内存吗?public class StrongReferenceDemo { public static void main(String[] args) { //obj1是一个强引用,指向new出来的实际对象 Object obj1 = new Object(); Object obj2 = obj1; obj1

2021-11-19 14:47:00 660

原创 【Java】SpringAOP的使用

房东租房的例子有一个房东要出租房屋:package com.shin.demo04;public class Host implements Rent { public void rent() { System.out.println("房东出租房屋"); }}package com.shin.demo04;public interface Rent { void rent();}在动态代理的例子中,已经可以实现通过一个代理生成类给各种各样的被

2021-11-17 19:43:32 194

原创 【Java】动态代理的使用

房东租房的例子有一个房东要出租房屋:public class Host implements Rent { public void rent() { System.out.println("房东出租房屋"); }}public interface Rent { void rent();}之前在静态代理的例子中,代理类是编译前写好的,并且对于每一个被代理的角色,都需要手动写一个代理类,非常麻烦。在动态代理中,我们可以根据被代理的角色动态生成需要的代理类:

2021-11-17 19:40:50 233

原创 【Java】静态代理的使用2

UserService的例子有一个UserServiceImpl类实现了UserService接口的add和delete方法:public class UserServiceImpl implements UserService { public void add() { System.out.println("add"); } public void delete() { System.out.println("delete"); }}

2021-11-17 19:39:06 90

原创 【Java】静态代理的使用1

一个租房的例子有一个房东要出租房屋,他可以自己完成出租房屋的操作:public class Host implements Rent{ public void rent() { System.out.println("房东出租房屋"); }}public interface Rent { void rent();}房东找了一个中介,因此中介通过房东也可以完成出租房屋的操作:public class Proxy implements Rent{

2021-11-17 19:34:23 173

空空如也

空空如也

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

TA关注的人

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