Java
文章平均质量分 83
java
qxlxi
21届本,后端工程师 (专注于Java、Go、数据库、缓存、消息队列、网络、OS、算法、软件设计、DevOps、云原生、大数据、分布式系统架构设计等)
展开
-
【Java基础】动态代理与代理模式哪些事儿
【Java基础】动态代理与代理模式哪些事儿原创 2024-07-27 11:06:48 · 728 阅读 · 0 评论 -
【Java基础】聊聊你不知道反射的那些事
【Java基础】聊聊你不知道反射的那些事原创 2024-01-28 22:18:15 · 572 阅读 · 0 评论 -
【Java基础】聊聊你不知道的注解那些事
【Java基础】聊聊你不知道的注解那些事原创 2024-01-26 22:49:59 · 1124 阅读 · 0 评论 -
【Java异常】聊聊异常可能带来的坑
【Java异常】聊聊异常可能带来的坑原创 2023-12-23 22:20:11 · 418 阅读 · 0 评论 -
【Java并发】聊聊不安全的HashMap以及ConcurrentHashMap
聊聊不安全的HashMap以及ConcurrentHashMap原创 2023-11-27 22:19:18 · 1277 阅读 · 0 评论 -
【Java集合】聊聊Hashmap的哈希函数、扩容、树化
聊聊Hashmap的哈希函数、扩容、树化原创 2023-11-19 20:54:44 · 127 阅读 · 0 评论 -
【Java容器】HashMap从入门到熟悉
1. HashMap从入门到熟悉1. hash碰撞的解决方案HashMap就是使用哈希表来存储的。哈希表为解决冲突,可以采用开放地址法和链地址法等来解决问题,Java中HashMap采用了链地址法。链地址法,简单来说,就是数组加链表的结合。在每个数组元素上都有一个链表结构,当数据被Hash后,得到数组下标,把数据放在对应下标元素的链表上。2. 红黑树优化方案2.1 为什么是长度为8的时候发生转换Because TreeNodes are about twice the size of regul原创 2020-05-16 21:38:58 · 505 阅读 · 0 评论 -
【Java容器】ConcurrentHashMap详解
ConcurrentHashMap1. ConcurrentHashmap是如何实现线程安全的1. 数据结构static final class Segment<K,V> extends ReentrantLock implements Serializable { private static final long serialVersionUID = 2249069246763182397L; // 和 HashMap 中的 HashEntr原创 2020-05-16 21:50:45 · 921 阅读 · 0 评论 -
Java 相关框架
1. Java8 Lambda什么是 Lambda 表达式?Lambda 表达式(lambda expression)是一个匿名函数,Lambda 表达式基于数学中的λ演算得名,直接对应于其中的 lambda 抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。从动态引用到动态定义,简化写法Java Lambda 表达式面向对象与面向函数。Java 里,函数不是第一等公民,需要封装到接口里。从而 Java Lambda 表达式 --> 内部匿名类。方法原创 2021-10-17 17:31:23 · 539 阅读 · 0 评论 -
【java基础】java基础-note
java基础-note1.面向对象子类的构造方法调用父类的构造方法1.子类的构造方法执行体第一行代码使用了super显示调用父类构造方法系统将根据super调用里传入的的实参列表,调用父类的构造方法2.子类的构造方法执行体的第一行代码使用this显示调用本类中重载的方法系统将根据this调用传入的实参列表,调用本类中另一个构造方法 执行本类中另一个构造方法 既会调用父类的构造方法3...原创 2020-05-02 10:31:44 · 601 阅读 · 0 评论 -
【javaSE】Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
public LoopQueue(int capacity){ data = (E [])new Object[capacity+1];//+1 队列中预留一个空间 用于比较是否队列满 front = 0;//初始化头指针 tail = 0; size = 0; } public void enquene(E e){...原创 2019-11-06 17:56:39 · 4071 阅读 · 4 评论 -
【Java 基础领域】手气红包实现思路、代码
package com.hblg.day09.redbag;import java.util.ArrayList;import java.util.List;import java.util.Random;/** * @author i * @create 2019/9/8 17:24 * @Description 手气红包 * 我们来假设一种极端情况 某群主发了1...原创 2019-09-08 18:13:41 · 448 阅读 · 0 评论 -
【Java基础领域】 byte num = 100 没有强制类型转换,为什么也可以编译通过
我们知道在java中 整形默认是int类型byte num = 100; //也就是相当于100 是Int类型 但是我们并没有做强制类型转换,就可以直接赋值给num num的类型是byte类型, 针对这个问题作出如下解释。package com.hblg.day02;/** * @author i * @create 2019/9/3 21:10 * @Descrip...原创 2019-09-03 21:20:49 · 1217 阅读 · 0 评论 -
【Java 基础领域】二维数组创建内存图
问题:二维数组的创建其内存的划分结构图。原创 2019-04-27 15:56:01 · 632 阅读 · 0 评论 -
【java基础领域】高内聚、低耦合理解
低耦合,我给大家举一个例子,公司里面的董事长只会和总经理打交道,董事长的下层接口是总经理,总经理手底下右个副总经理,那么,总经理就和3个副总经理打交道,3个副总每一个人管理一个业务部门,副总经理只和部门经理打交道,部门经理手底下有自己部门的员工,但是部门经理只和团队的队长打交道,团队队长和所有团员打交道这样一个非常分明的层次关系,不会让董事长来交叉管理团员,也不会让总经理来管部门经理如果交叉在...原创 2018-03-28 21:30:12 · 2073 阅读 · 0 评论 -
【jdbc】jdbc连接池理解
* web与企业应用中的连接管理* 一般我们在项目中都会抽取出一些公共设置数据库连接的配置。项目在修改的时候 就可以很方便的去修改。* 而不需要在无尽的代码中,去修改所有的代码。提高了软件的可重用性。* 另一个就是用户每次去使用程序的时候,都会创建一个新的连接。在使用完毕之后,在将新的连接重新关闭,* 这样对于资源里的利用是不令人满意。之前是有两种策略来使用获取数据库连接。一...原创 2018-07-08 20:34:51 · 680 阅读 · 0 评论 -
【java基础】接口的理解
接口的定义:* 我想简述一下什么是接口* 在我们开发一个传统的应用系统中,会有很多的接口文档。刚开始的时候,我们很纳闷这个接口文档是什么高大上的东西。* 但是当接触了接口文档之后,我们明白了原来接口就是一个controller里public的方法。宏观上去理解。* 那就是应用程序对外暴露的接口。对于应用程序来说,这个接口时暴露给用户来使用的,对于用户完全是透明的。* ...原创 2018-07-08 20:32:36 · 508 阅读 · 0 评论 -
【java基础】private protect的理解
在框架中有protected的方法,因为框架中需要我们去做一些增强的功能。最终被框架多态调用* 就算我们覆盖重写也不是,让我们来使用,而是让框架来调用。子类增强了 框架调用的时候调用自己实现增强的类* 是框架调用他们。不是我们调用他们。但是框架调用也会出现。* 框架中的protected方法可以直接写死成private,但是有时候为了方便拓展 就需要设置成protected方法* ...原创 2018-07-08 18:54:10 · 1327 阅读 · 0 评论 -
【类加载器学习】
(注意) 虚拟机只加载程序执行时所需要的类文件。我们假设加载Demo.class文件开始1、虚拟机有一个用于加载类文件的机制,例如,从磁盘上读取文件或者请求web上的文件,使用该机制加载Demo.class文件的内容。2、如果Demo类拥有类型为另一个类的域,或者是拥有超类,那么这些类文件也会被加载,(加载某个类所依赖所有类的过程称为类的解析)3、接着虚拟机执行Demo...原创 2018-04-06 19:35:45 · 285 阅读 · 0 评论 -
【jdbc】jdbc 整体架构
在传统的客户端/服务端模型中,通常是在服务器端部署数据库,而在客户端安装GUI程序,再次模型中,JDBC驱动程序应该部署在客户端如今三层模型更加常见,在三层应用模型中,客户端不直接调用数据库,而是调用服务器上的中间件,有中间件完成数据库查询操作,这种三层模型有以下优点,他将可视化表示(位于客户端) 从业务逻辑(位于中间件)和原始数据(位于数据库)中分离出来、因此,我们可以从不同的客户端,如j...原创 2018-04-06 15:45:14 · 1043 阅读 · 0 评论 -
【io流学习】
流是一个抽象的概念,代表一串数据的集合,当java程序需要从数据源读取数据时,就需要开一个到数据源的流。同样,当程序需要输出数据到目的地时,也需要开启一个流,流的创建是为了更方便地处理数据的输入和输出。 java中的流可以按照如下方式分类1.按数据流分****输入流 程序可以从中读取数据的流****输出流 程序能向其中输出数据的流2.按数据传输单位分***...原创 2018-04-06 12:48:35 · 242 阅读 · 0 评论 -
【jdbc】JDBC中Statement与PreparedStatement的区别
1.statement每次执行sql语句,相关数据库都要执行sql语句的编译;preparedstatement是预编译的, 采用Cache机制(预编译语句,放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来,有利于sql生成查询计划。),对于批量处理可以大大提高效率. 也叫JDBC存储过程。例如,如果要执行两条sql语句SELECT colume FROM T...转载 2018-03-31 15:38:47 · 302 阅读 · 0 评论 -
java集合整理
集合java集合类汇总一、集合和数组 数组(可以储存基本数据类型)是用来存现对象的一种容器,不适合在对象数量未知的情况下使用集合只能存储对象,对象类型可以不一样 长度可变,可在多数情况下使用二、层次关系 Collection接口是集合类的根接口,java中没有提供这个接口的直接的实现类,但是却让其被继承产生了两个接口,就是Set和List.Set中不能包含重复的...原创 2018-03-13 12:49:03 · 396 阅读 · 0 评论 -
关于java堆栈的理解与说明
在谈堆和栈之前,首先我们先要了解一下Java对内存的分配结构。作为Java程序员大家应该都知道Java的程序都是运行在Java虚拟机上也就是JVM上,程序中所有的变量、实例、方法等都是由JVM在内存上分配空间的。 那么让我们来初步的了解一下Java程序在运行时都会存在哪些内存区域: 1.寄存器:JVM内部虚拟的寄存器跟CPU有关,程序无法控制。 2.栈:...转载 2018-03-04 16:36:40 · 1681 阅读 · 0 评论 -
java中Object类的equals理解
所有类都从Object类中继承了equals方法Object类中equals方法源代码如下:[java]view plaincopypublicbooleanequals(Objectobj) { returnthis==obj; }Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equal...转载 2018-03-03 19:07:11 · 396 阅读 · 0 评论 -
Java的string类为什么是不可变的
答案一:最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。复制代码 代码如下:String s = "ABC";s.toLower...转载 2018-02-01 21:56:46 · 1463 阅读 · 0 评论 -
java基础学习之如果main方法是private 会是什么结果
public class Demo07{private static void main(String [] agrs){System.out.println(" I m hacker");}}可以编译过去,但是执行的时候会出现 找不到或无法加载主类 Demo07原创 2018-01-28 23:59:28 · 1934 阅读 · 5 评论 -
【java 基础领域】类加载机制
类加载机制1.什么是类的加载?类加载机制指的是将.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不需要等到某...原创 2018-10-10 11:05:15 · 344 阅读 · 0 评论