Alias的博客

关于Java中的代理静态代理所谓静态代理,就是代理类是由程序员自己编写的,在编译期就确定好了的。 1234567891011public interface HelloSerivice { public void say();}public class HelloSeriviceImpl implements HelloSerivice{ @Over...

Java中的反射概念:反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有属性和方法。 反射主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射的作用1、在运行时判断任意一个对象所属的类。 2、在运行时判断任意一个类所具有的成员变量和方法。 3...

Java中的IO字符流和字节流字节与字符Byte(字节)是计算机操作数据的最小单位由8位bit组成 取值(-128-127) Char(字符)是用户的可读写的最小单位,在Java里面由16位bit组成 取值(0-65535) 字节流操作byte类型数据,主要操作类是OutputStream、InputStream的子类,不用缓冲区,直接对文件本身操作 字符流操作字符类型数据,主要操作类是Re...

盘点Java中的各种关键字transient如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。这里的对象存储是指,Java的serialization提供的一种持久化对象实例的机制。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。使用情况是:当持久化对象时,可能有一个特殊的对象数据成员,我们...

Java内存模型为什么要有内存模型CPU和缓存一致性计算机在执行程序的时候,每条指令都是在CPU中执行的,但是在执行的时候,又免不了要和数据打交道。而计算机上面的数据是放在主存中的,也就是计算机的物理内存。 但是随着CPU技术的发展,CPU的执行速度越来越快。而由于内存的技术并没有太大的变化,所以从内存中读取和写入数据的过程和CPU的执行速度比起来差距就会越来越大,这就导致CPU每次操作内存...

关于Java中字符串的存储方式创建方式1: 1String s = "123"; 首先在栈中创建字符串”123”,随后调用intern(),检查字符串常量池中是否存在对这个字符串的引用,如果有则返回对他的引用,没有的话则将这个字符串存入字符串常量池。如果改字符串已经存储在堆中,intern方法会直接将其引用到字符串常量池中 s返回的是字符串常量池中”123”的引用 创建...

关于Java中的String(二)Java8中的StringJoinerStringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符序列(可选),并且可以从提供的前缀开始并以提供的后缀结尾。虽然这也可以在StringBuilder类的帮助下在每个字符串之后附加分隔符,但StringJoiner提供了简单的方法来实现,而无需编写大量代码。 如何使用 12345678...

关于Java中的String字符串的不可变性在java中,字符串是不可变的。那什么是不可变对象呢?不可变对象是在完全创建之后其内部状态保持不变的对象,这意味着一旦对象被复制给变量我们既不能更新引用也不能通过任何方式改变内部状态 这时可能有人疑惑,通过一下代码我们不就改变字符串了吗? 12String s = "abc";s = s.concat("def&quo...

Java基础面向对象三大基本特征和五大基本原则面向对象三大基本特征封装 封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏(对内部数据提供了不同级别的保护) 继承 继承是指他可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能扩展。 继承实现方法分为实现继承和接口继承。实现继承是指直接使用基类的属性和方法而无需额外编...

各种线程模型介绍传统阻塞 I/O 服务模型模型特点1、采用阻塞IO模式获取输入的数据 2、每个连接都需要独立的线程完成数据输入 存在的问题1、并发数很大的时候会创建大量的线程,占用很大的系统资源 2、创建连接后,如果当前线程暂时没有数据可读,该线程会阻塞在Handler对象中的read操作,导致上面的处理线程资源浪费 Reactor模式针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案...