JAVA基础
文章平均质量分 84
一些关于java的基础知识
wuraox
这个作者很懒,什么都没留下…
展开
-
AQS——从ReentrantLock入手,了解锁的获取的释放
AQS以下内容可参考美团技术团队:从ReentrantLock的实现看AQS的原理及应用讲到ReentrantLock就不得不讲AQS,因为Lock的底层就是基于AQS来实现的。那么。什么时AQS呢?AQS全称AbstractQueuedSynchronizer,是JUC中的一个类。它提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。常见的ReentranrLock、Semaphore、CountDownLatch、ThreadPoolExecutor中都是用到了这个类。AQS类源原创 2022-01-17 20:19:17 · 444 阅读 · 0 评论 -
java socket入门学习笔记
java socket计算机网络知识不做赘述一、InetAddress类public static void main(String[] args) { try { System.out.println("--------获取ip地址-------"); InetAddress byName = InetAddress.getByName("192.168.43.8"); System.out.println(by原创 2021-03-08 19:37:07 · 89 阅读 · 0 评论 -
java8 新特性
java8 主要新特性一、lambda表达式Runnable run = () ->{ System.out.println("hello"); };格式:lambda操作符(箭头操作符): ->操作符左边:lambda形参列表,即:接口中的抽象方法的形参列表操作符右边:方法体,即:接口抽象方法的方法体特殊情况:lambda表达式的参数列表的参数类型可以省略(类型推断);如果只有一个参数,小括号可以省略lambda体应用大括号包起原创 2021-03-11 13:54:15 · 50 阅读 · 0 评论 -
反射原理即使用(浅尝)
前提:刚学习了ssm框架,对ssm框架有了初步的了解,知道框架的底层实现是基于反射机制,故而学习浅尝了反射机制,仅作为学习笔记和学习记录反射将类的各个组成部分封装为其他对象,即为反射机制一、优点可以在程序运行中,操作这些对象可与i解耦,提高程序的可扩展性二、获取class对象的方式Class.forName(“全类名” : 将字节码文件加载进内存,返回C对象(多用于配置文件)//1. Class.forName("全类名"Class Class1 = Class.forName("原创 2021-02-04 20:09:50 · 72 阅读 · 0 评论 -
java 集合学习笔记
Collection接口APIModifier and TypeMethod and Descriptionbooleanadd(E e) 确保此集合包含指定的元素(可选操作)。booleanaddAll(Collection<? extends E> c) 将指定集合中的所有元素添加到此集合(可选操作)。voidclear() 从此集合中删除所有元素(可选操作)。booleancontains(Object o) 如果此集合包含指定的元原创 2021-03-07 12:01:51 · 154 阅读 · 0 评论 -
java IO学习笔记
JAVA I/O一、流的分类按流向分输入流:将数据从存储设备读入到内存中输出流:将数据从内存中存到存储设备上按单位分字节流:以字节为单位,可以读写所有数据InputStream:字节输入流,常用有的方法:int read()从输入流读取数据的下一个字节。int read(byte[] b)从输入流读取一些字节数,并将它们存储到缓冲区 b 。int read(byte[] b, int off, int len)从输入流读取最多 len字节原创 2021-03-08 11:05:34 · 62 阅读 · 0 评论 -
java 枚举&注解学习笔记
java 枚举类当需要定义一组常量时,可以使用枚举类一、定义枚举类:方式一:自定义枚举类(jdk5.0之前)persion对象的属性:使用final关键字修饰创建类的构造器,并给对象的属性赋值创建枚举类的多个对象public class demo1 { public static void main(String[] args) { System.out.println(persion.A.toString()); System.out.pr原创 2021-03-04 19:28:08 · 104 阅读 · 3 评论 -
java字节码文件学习
字节码文件结构篇java虚拟机规范——字节码文件官网:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1源代码经编译后会生成字节码文件,字节码文件是一种二进制的类型文件,它的内容是jvm指令。字节码指令:java虚拟机的指令又一个字节长度的、代表某种特定操作含义的操作码(opcode)以及跟随其后的零至多个代表此操作所需参数的操作数构成。字节码文件整体结构:ClassFile { u4原创 2021-08-10 14:16:33 · 1175 阅读 · 0 评论 -
理解和使用JUC
JUC一、前提概要进程与线程简单来说,进程就是一个程序,是cpu的最小资源分配单位;而一个进程可以有多个线程,所以线程是最小的运行单位。java中线程的状态注意,这里说的状态而不是生命周期,所以有如下6中状态:初始(New)就绪/运行(Runnable)阻塞(Blocked)等待(Waiting)超时等待(Timed_Waiting)终止(Terminated)wait与sleep同:都会被interrupted方法中断都是在哪里停止,在哪里继续异:w原创 2021-08-16 20:44:03 · 141 阅读 · 0 评论 -
设计模式1(创建型)
设计模式设计模式的原则首先需要了解使用设计模式的目的:代码可重用性:对于功能重复的代码不用多次编写;可读性:使编程具有规范性,便于阅读和理解;可扩展性:在需要添加功能的时候,可以很方(可维护性高);可靠性:当添加新功能之后对原来的功能没有影响;实现高内聚、低耦合。设计模式的七大原则:单一职责原则降低类的复杂性,一个类只负责一个职责;提高类的可读性,可维护性;降低代码变更的风险;接口隔离原则客户端不应该它不需要的接口,即一个类对另外一个类的依赖应该建原创 2021-08-26 21:11:51 · 120 阅读 · 0 评论 -
jvm内存结构介绍
JVM结构篇jvm的发展历程classic jvm >>> exact jvm >>> HotSopt 、 JRockit(最快,专注于服务端)、J9HotSpot虚拟机结构如下:一、类加载子系统从本地或网络中加载class文件(文件开头有特定的文件标识)三个阶段:加载、连接、初始化1.加载阶段(Loading)从各个途径(本地、网络、数据库等)加载.class文件(二进制流),最终生成java.long.Class类类加载器分原创 2021-08-10 14:10:27 · 116 阅读 · 0 评论 -
NIO的使用
NIO所在包:java.nio一、概述BIO与NIOBIO:即Blocking IO 阻塞IO,顾名思义就是会被阻塞的IO。在数据读取(或者写数据)的时候,只有当读取到(或写完)数据之后才能做其他的事情,而在这期间一直处于阻塞状态(等待操作的完成)。NIO:Non-Blocking IO 非阻塞IO,顾名思义就是不会被阻塞的IO。在读取(或写)数据的时候,只将请求发送给底层操作而自己就可以继续做别的事情,当读取(或写)完成自己后,会有Selector通知该线程已经完成,则该线程在回来操作数据。原创 2021-09-14 09:33:24 · 137 阅读 · 0 评论 -
适配器模式之FutureTask
最近在学习JUC的相关类的源码的时候,看到了FutrueTask类中有使用到适配器模式,加之前段时间刚学习了设计模式,所以就了解了一下加深对适配器模式的理解。简单解释一下适配器的思想:就是一个类不能被直接使用,就通过适配器将其转换为另一个类的过程。就像家庭电压为220V,但是手机充电是不能直接使用220V的交流电,需要通过电源适配器将其转换为5V的直流电才能直接使用,这个电源适配器就是适配器模式中的适配器。直接上代码:构造方法一:传入参数为Callable接口 public FutureTas原创 2021-09-08 22:14:26 · 381 阅读 · 0 评论