![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
Just-Today
从事并学习Java中
展开
-
synchronized-锁总结
在 JDK1.6 之前,只有传统的锁机制(重量级锁),因此给开发者留下了synchronized关键字相比于其他同步机制性能不好的印象。在 JDK1.6 引入了两种新型的锁机制:偏向锁和轻量级锁,它们的引入是为了解决在没有多线程竞争或基本没有竞争的场景下因使用传统锁机制带来的性能开销问题。原创 2022-10-20 22:20:09 · 806 阅读 · 1 评论 -
Java实现2+2=5
今天在网上看到一篇文章,以前没看过类似的题目,引起了我的好奇心,于是仔细看了看文章,知道原来是利用了Java包装类型的实例池(也就是缓存数组)特性才实现 2+2=5。原创 2022-09-29 10:39:08 · 549 阅读 · 0 评论 -
Happens-before原则
FutureTask借用Happens-before原则保证了返回结果的可见性,可参考。后面(运行时间上的先后)volatile变量规则。后面(运行时间上的先后)具体测试实例,可参考。原创 2022-09-25 10:59:19 · 347 阅读 · 0 评论 -
Java的编码方式、单个char类型存储大部分中文字符、getBytes()、new String()的转换流程
char存储中文,getBytes()、UTF-8、UTF-16、UTF-32、GBK、ASCII、ISO8859-1、Unicode原创 2022-09-19 18:04:08 · 4939 阅读 · 0 评论 -
Java-原码、反码、补码、位运算
位运算 > >> & | ^ ~原创 2022-09-06 23:28:08 · 2348 阅读 · 0 评论 -
HashMap-链表与红黑树转换触发条件
JDK1.8对HashMap进行了很多优化。例如当一个槽位slot上的链表个数达到转换成红黑树的条件,则会将链表转换为红黑树。当一个槽位slot上的红黑树节点个数低至转换成链表的条件,则会将红黑树转换为链表。访问节点方式:先找到节点所在的数组slot位置,然后判断节点是什么结构进行遍历。链next红黑树nextprevroot。原创 2022-09-04 11:46:22 · 7965 阅读 · 2 评论 -
Java-内部类详解
成员内部类定义在外部类的成员位置,且没有使用static修饰。如同成员一样,可使用任意访问修饰符(public,protected,默认(default),private)修饰,因为它的地位就是一个成员。成员内部类可以直接访问外部类的所有成员、方法,包括私有的。作用域:同外部类的其他成员一样为整个类体。成员内部类依赖于外部类(外部类、外部其他类访问内部类,则需要先通过外部类对象创建内部类对象,再访问内部类)。2.2 成员内部类访问外部类访问方式:直接访问。原创 2022-09-02 23:49:09 · 1953 阅读 · 0 评论 -
ThreadLocal
ThreadLocal原创 2022-08-29 11:13:09 · 67 阅读 · 0 评论 -
集合转数组的toArray()和toArray(T[] a)方法
集合转数组的toArray()和toArray(T[] a)方法原创 2022-08-27 11:29:18 · 134 阅读 · 0 评论 -
Java-访问修饰符
不同包下的Red想要访问msg属性,则只能通过继承Test类,然后通过this.msg访问,或创建Red对象red,通过red.msg访问。3、如果有不同包的类想访问调用它们,那么这个类必须是定义它们的类的子类。2、被protected修饰的成员,能在定义它们的类或同包的类被访问。在Red类中,创建Test对象test,不能通过test访问msg。通过this或者创建该类的对象访问它们,不能通过创建定义类对象访问。被调用,不管同包或不同包,是权限最大的一个修饰符。(默认权限,默认不写修饰符,就是默认权限,.原创 2022-08-26 17:17:40 · 549 阅读 · 0 评论 -
Lambda表达式
Lambda表达式是一个匿名函数,Java在JDK1.8引入Lambda表达式。结构:(参数列表)->{Lambda体:代码块,也就是表达式要运行的功能},()包裹->{}例如:(int x, int y)->{return x + y;}原创 2022-08-15 23:45:05 · 317 阅读 · 0 评论 -
HTTP协议工具类-Java版本
该工具类可传输普通参数、文件等。pom文件 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.10</version> </dependency> <dependency> <原创 2022-05-25 16:24:13 · 2395 阅读 · 0 评论 -
红黑树-Java实现
一、定义红黑树是特殊的平衡二叉树,具有以下特性:1、根节点的颜色是黑色2、节点颜色要么是黑色、要么是红色3、如果一个节点的颜色是红色,则它的子节点必须是黑色,即不能有2个连续的红色节点4、每个叶子节点都是黑色(这里的叶子节点是为空的叶子节点)5、从一个节点到该节点的叶子节点的所有路径上都包含相同数量的黑色节点 通过上面的定义,可以看到红黑树本质上还是一颗二叉查找树,所以,对红黑树的插入删除操作都可以分为两阶段来完成,首先,将红黑树看成一颗普通的二叉查找树完成插入删除操....原创 2022-04-05 18:31:40 · 9066 阅读 · 3 评论 -
二叉树-相关方法(Java实现)
树节点package com.mzp.tree;/** * 平衡二叉树节点 */public class AVLTreeNode { private int data; //高度 private int height; //左子节点 private AVLTreeNode left; //右子节点 private AVLTreeNode right; public AVLTreeNode(int data) { .原创 2022-03-31 15:07:09 · 829 阅读 · 0 评论 -
平衡二叉树-插入、删除(java代码)
二叉树定义目录一、概念1、定义2、平衡因子3、最小不平衡子树二、旋转纠正1、旋转方式2、旋转纠正类型LL型LR型RR型RL型三、插入四、删除五、完整代码实现一、概念1、定义规定任意结点的左右子树高度差不大于1,左右子树也是平衡二叉树2、平衡因子定义:左子树和右子树高度差计算:左子树高度 - 右子树高度的值别名:简称 BF(Balance Factor)一般来说 BF 的绝对值大于 1,,平衡树二叉树就失衡,需要原创 2022-03-30 09:46:16 · 1622 阅读 · 2 评论 -
Spring注解
AnnotaionConfigApplicationContext指定配置类生成IOC容器@Test public void test1(){ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Config.class); User user = applicationContext.getBean("user1", User.class);原创 2022-03-08 08:39:02 · 315 阅读 · 0 评论 -
Java-基本类型和包装类型总结
一、基本类型和对应的包装类型基本类型 包装类型 二进制位数 数据存储量 数据范围 boolean Boolean 1 2 false、true byte Byte 8 255(2^8-1) -128~127(-2^7到2^7-1) short Short 16 65536(2^16-1) -32768~32767(-2^15到2^15-1) char Character 16原创 2022-02-24 11:34:32 · 739 阅读 · 0 评论 -
java-注解
一、元注解@Target指定注解的使用范围,不写默认可使用在任何地方可通过ElementType来限制注解的使用范围public enum ElementType { /* 类、接口(包括注释类型)或枚举声明 */ TYPE, /* 字段声明(包括enum常量) 就是成员变量 */ FIELD, /* 方法声明 */ METHOD, /* 正式的参数声明 */ PARAMETER, /* 构造函数声明 */原创 2022-02-20 12:48:35 · 1400 阅读 · 0 评论 -
位运算-<<和>>遇到的坑
涉及到<<和>>运算, 记得得加上括号,防止运算顺序出错例如想要非负整数先加2再加+1得 int arr = (arr.length >> 1) - 1若是 int arr = arr.length >> 1 - 1则会先运算1-1导致出错原创 2021-10-22 14:41:43 · 84 阅读 · 0 评论 -
英文字母、数字、符号和空格组成
由英文字母、数字、符号和空格组成 就是ascii码上常见的前128个原创 2021-10-14 14:46:46 · 864 阅读 · 0 评论 -
关于Druid连接池遇到数据库挂了,重启遇到的问题解决方法
项目在线上环境测试时发现一个问题,就是如果数据库关闭了,然后重启,获取数据库连接一直是超时状态。网上查了很多资料,才知道了原因,Druid数据库连接池配置中的BreakAfterAcquireFailure属性设置为true就可能会出现数据库关闭重启,一直获取不到连接。BreakAfterAcquireFailure是设置是否失败重连,默认为false。false表示新的请求都会尝试去数据库请求connection,但是当获取不到连接的时候,Druid将会无限的打印获取不到连接的异常...原创 2021-10-12 11:38:10 · 7190 阅读 · 2 评论 -
Oracle完整复制表结构信息流程与JAVA例子
一、查看表是否存在select count(1) COUNT from user_tables t where table_name= upper('表名')查询得到大于0即存在二、查看表属于哪个表空间SELECT TABLESPACE_NAME FROM user_tables WHERE TABLE_NAME = upper('表名')若查询为空,则说明表属于默认表空间,则执行下列语句可得到默认表空间SELECT DEFAULT_TABLESPACE FRO...原创 2021-09-04 09:57:25 · 447 阅读 · 1 评论 -
Java-Oracle编码为US7ASCII导致中文乱码
首先查看Oracle数据库编码SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;得到解决思路:取数据:先将从数据库取出来的数据根据编码"iso-8859-1"转换成bytes数组,接着将bytes数组按照"GBK"编码转换String字符串new String(value().toString().getBytes(Charset.forName(ISO)), Charset.forName(GBK))原创 2021-09-01 15:09:02 · 1678 阅读 · 0 评论