随笔分类 - java基础知识
摘要:一、Java总体命名规则 项目名全部小写。 包名全部小写。 类名首字母大写,其余组成词首字母依次大写(大驼峰命名法)。 变量名、方法名首字母小写,其余组成词首字母大写(小驼峰命名法)。 常量名全部大写。
阅读全文
摘要:函数式接口 只有一个方法的接口(或者说只有一个方法需要实现的接口,java8支持接口有默认实现) //常见的函数式接口 @FunctionalInterface public interface Runnable { public abstract void run(); } 简单使用: packa
阅读全文
摘要:1. 为什么使用线程池 1、降低资源的消耗 2、提高响应的速度 3、方便管理。 线程池可以达到:线程复用、可以控制最大并发数、管理线程的目的 2. 线程池的使用 2.1 Executors的三种方法 package pool; import java.util.concurrent.Executor
阅读全文
摘要:package ztext.pc; /** * JavaTest * * @author : xgj * @description : de * @date : 2020-09-20 14:40 **/ public class TestOne { public static void main(S
阅读全文
摘要:Lock锁和synchronized锁的区别 Lock锁是对象,而synchronized是java关键字 Lock锁需要手动加锁释放锁,synchronized的该操作是全自动的。对于异常前者需要手动释放锁,不然容易导致死锁。而后者由jvm自动管理。 Lock锁的属性可以配置,而synchroni
阅读全文
摘要:概述 AQS的核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并将共享资源设置为锁定状态,如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中。 AQS是将每一条请
阅读全文
摘要:1.1乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,主要区别在对于同步资源的处理方式的不同。在Java和数据库中都有此概念对应的实际应用。 对于乐观锁而言: 认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据
阅读全文
摘要:概念 Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱
阅读全文
摘要:1.1定义 反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。 1.2实例 jdbc就是典型的反射 1.3实现 第一步:获取Class对象,有4中方法: 1.Clas
阅读全文
摘要:1.1强引用 强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收,使用方式: String str = new String("str"); 1.2软引用 软引用在程序内存不足时,会被回收,使用方式: // 注意:wrf这个引用也是强引用,它是指向SoftReferenc
阅读全文
摘要:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。 1、比较的是操作符两端的操作数是否是同一个对象。 2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。 3、比较的是地址,如果是具体的阿拉伯
阅读全文
摘要:装箱就是自动将基本数据类型转换为包装器类型(int-->Integer); 调用方法:Integer的valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer-->int)。 调用方法:Integer的intValue方法 常见面试题 以下代码会输出什么? publ
阅读全文
摘要:instanceof严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类
阅读全文
摘要:1.1 基础知识 首先我们知道进程是无法直接操作I/O设备的,其必须通过系统调用请求内核来协助完成I/O动作,而内核会为每个I/O设备维护一个buffer。 这里数据的两次拷贝都需要时间,而这两端时间中进程和内核的状态不一样就产生了下面五种i/o模型: 阻塞I/O 对于内核而言,网络中的数据并不一定
阅读全文
摘要:1.1概述 synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性 1.2详解 synchronized的存在三种应用方式: 普通同步方法(实例方法),锁是当前实例对象 ,进入同步代码前要获得当前实例的锁 静态同步方法,锁是
阅读全文
摘要:1.1for循环 package ztext; import java.util.Arrays; /** * @author xgj */ public class MyTest { public static void main(String[] args) { int[] oldArray =
阅读全文
摘要:1.1概述 被native关键字修饰的方法叫做本地方法,本地方法和其它方法不一样,本地方法意味着和平台有关,因此使用了native的程序可移植性都不太高。另外native方法在JVM中运行时数据区也和其它方法不一样,它有专门的本地方法栈。native方法主要用于加载文件和动态链接库,由于Java语言
阅读全文
摘要:1.1概述 被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变.被final修饰的方法,JVM会尝试将其内联,以提高运行效率 被final修饰的常量,在编译阶段会存入常量池中. 1.2引入 观
阅读全文
摘要:1.1作用 防止指令重排 使得多线程下的共享资源能够独自修改使用。解决缓存不一致问题。 1.2相关知识 1.Java内存模型 1.3详解 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1.保证了不同线程对这个变量进行操作时的可见性,即一个线程修
阅读全文

浙公网安备 33010602011771号