• 手机版
  • 热门标签
  • 站点地图
  • 我要投稿
  • 广告合作
  • 联系我们
编程之家
AI导航网
  • 广告位招租
  • 广告位招租
  • 首页
  • 编程教程
  • 编程导航
  • 编程百科
  • 编程博文
  • 编程实例
  • 常见问题
  • 产品运营
  • 软件教程
  • 办公软件
  • ▸ PHP
  • ▸ Java
  • ▸ Java SE
  • ▸ Python
  • ▸ NumPy
  • ▸ C#
  • ▸ C&C++
  • ▸ Ruby
  • ▸ VB
  • ▸ asp.Net
  • ▸ Go
  • ▸ Perl
  • ▸ netty
  • ▸ gRPC
  • ▸ Django
  • ▸ Delphi
  • ▸ Jsp
  • ▸ .NET Core
  • ▸ Spring
  • ▸ Flask
  • ▸ Springboot
  • ▸ SpringMVC
  • ▸ Spring Cloud
  • ▸ Lua
  • ▸ fastadmin
  • ▸ Laravel
  • ▸ Mybatis
  • ▸ Asp
  • ▸ Groovy
  • ▸ ThinkPHP
  • ▸ Yii
  • ▸ swoole
微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!
  • 编程之家
  • 编程语言
String真的不可变吗?
Java中的String是不可变对象 在面向对象及函数编程语言中,不可变对象(英语:Immutable object)是一种对象,在被创造之后,它的状态就不可以被改变。至于状态可以被改变的对象,则被称为可变对象(英语:mutable o...
作者:seven97_top 时间:2024-10-24
String, StringBuffer 和 StringBuilder之间的区别
String, StringBuffer 和 StringBuilder 可变性 String不可变 StringBuffer 和 StringBuilder 可变 线程安全 String 不可变,因此是线程安全的 StringBuilder不是线程安全的 StringBuffer 是线程安全的,内
作者:seven97_top 时间:2024-10-24
讲讲Java的序列化反序列化?
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 什么时候会用到 当只在本地 JVM 里运行下 Java 实例,这个时候是不需要什么序列化和反序列化的,但...
作者:seven97_top 时间:2024-10-24
数组到底是不是对象
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对象?对象是类的一个实例,有状态和行为 Java对象: 软件的对象也有行为和状态 软件对象的状态称之为属性 方法操作对象内部状态的改变,对象的相互调用也是...
作者:seven97_top 时间:2024-10-24
金融、支付行业的开发者不得不知道的float、double计算误差问题
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险呢? 《阿里巴巴 Java 开发手册》中提到:“浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断”。“为了避免精度...
作者:seven97_top 时间:2024-10-24
浅谈Integer缓存机制原理
面试题引入 这里引申出一个经典问题,看下面代码 Integer a = 100; Integer b = 100; System.out.println(a == b);//true Integer c = 200; Integer d = 200; System.out.println(c ==
作者:seven97_top 时间:2024-10-24
能否自定义一个String类使用
先说下结论,可以自定义包名不为java.lang的String类,区别包名是可以正常使用的。 包名不为java.lang package com.seven.jvm; public final class String { /** The value is used for character st
作者:seven97_top 时间:2024-10-24
一文讲清楚static关键字
static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它;静态变量在内存中只存在一份。 实例变量: 每创建一个实例就会产生一个实例...
作者:seven97_top 时间:2024-10-24
String究竟能存储多少字符?
能存储多少字符,通过以下步骤来看 首先String的length方法返回是int。所以理论上长度一定不会超过int的最大值。 编译器对字符串字面量长度的限制源自Java编译器(如javac)在处理常量池时的实现。编译器源码如下,限...
作者:seven97_top 时间:2024-10-24
解决哈希冲突的三种方法
为什么会哈希冲突 我们知道,在使用Map,Set这些集合时,都会重写hashcode方法,但Java中的hashCode方法会将对象映射到一个32位的整数范围(即从-2^31 到 2^31-1)。无论输入数据多么庞大,哈希函数生成的哈希值总是...
作者:seven97_top 时间:2024-10-24
讲讲深拷贝浅拷贝
什么是值传递和引用传递? 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。 引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身,两者指向同一片...
作者:seven97_top 时间:2024-10-24
为什么重写hashCode一定也要重写equals方法?
这是一个经典的问题,我们先从==开始看起 == "==" 是运算符 如果比较的对象是基本数据类型,则比较的是其存储的值是否相等; 如果比较的是引用数据类型,则比较的是所指向对象的地址值是否相等(是...
作者:seven97_top 时间:2024-10-24
深入剖析HashMap:理解Hash、底层实现与扩容机制
HashMap是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构, 而HashSet和HashMap者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此了解Ha...
作者:seven97_top 时间:2024-10-15
为什么在EffectiveJava中建议用EnumSet替代位字段,以及使用EnumMap替换序数索引
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,在第37条中建议 用EnumMap替换序数索引,为什么? EnumSet 在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段 36、用 EnumSet替代位字段 如果枚举类...
作者:seven97_top 时间:2024-10-15
注解的优点?元注解?
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。主要作用如下: 编写文档——通过注解中标识的元数据可以生成doc文档,这是最常见的,也是...
作者:seven97_top 时间:2024-10-15
Linkedlist源码详解
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时...
作者:seven97_top 时间:2024-10-15
TreeMap源码详解—彻底搞懂红黑树的平衡操作
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说TreeSet里面有一个TreeMap(适配器模式)。 Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排...
作者:seven97_top 时间:2024-10-15
深入理解ConcurrentHashMap
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进行put操作,调用了HashMap的putVal(),具体原因: 假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的; 当线程A执行完第六行由于时...
作者:seven97_top 时间:2024-10-15
枚举实现原理
枚举的定义 在JDK1.5之前,我们要是想定义一些有关常量的内容,例如定义几个常量,表示从周一到周末,一般都是在一个类,或者一个接口中,写类似于如下代码: public class WeekDayConstant { public static final i...
作者:seven97_top 时间:2024-10-15
为什么Java已经不推荐使用Stack了?
为什么不推荐使用Stack Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque 为什么不推荐使用 性能低:是因为 Stack 继承自 Vector, 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目,很难在原有的基础...
作者:seven97_top 时间:2024-10-15
注解是如何实现的?
注解是否支持继承 不支持继承 不能使用关键字extends来继承某个@interface,但注解在编译后,编译器会自动继承java.lang.annotation.Annotation接口. 虽然反编译后发现注解继承了Annotation接口,但即使Java的接口可...
作者:seven97_top 时间:2024-10-15
一篇文章讲清楚Java中的反射
介绍 每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。 类加载相当于 Class 对象的加载。类在第一次使用时才动态加载到 JVM 中,...
作者:seven97_top 时间:2024-10-15
ConcurrentLinkedQueue详解(图文并茂)
前言 ConcurrentLinkedQueue是基于链接节点的无界线程安全队列。此队列按照FIFO(先进先出)原则对元素进行排序。队列的头部是队列中存在时间最长的元素,而队列的尾部则是最近添加的元素。新的元素总是被插入到队列...
作者:seven97_top 时间:2024-10-15
深入浅出Stream流
Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利。 案例引入 在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进...
作者:seven97_top 时间:2024-10-15
知道泛型擦除会造成多态的冲突吗?
类型擦除会造成多态的冲突,而JVM的解决方法就是泛型的桥接方法。 举例 现在有这样一个泛型类: class Pair<T> { private T value; public T getValue() { return value; } public void setValue(T va
作者:seven97_top 时间:2024-10-15
了解泛型的类型擦除吗?
概念 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参...
作者:seven97_top 时间:2024-10-15
LinkedHashMap原理详解—从LRU缓存机制说起
写在前面 从一道Leetcode题目说起 首先,来看一下Leetcode里面的一道经典题目:146.LRU缓存机制,题目描述如下: 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(in...
作者:seven97_top 时间:2024-10-15
解耦利器
为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实...
作者:Java中的SPI机制 - seven97_top 时间:2024-10-15
优先级队列PriorityQueue(图文并茂)
介绍 优先级队列的作用是能保证每次取出的元素都是队列中权值最小(或最大)的。这里元素大小的评判可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 Java中PriorityQueue实...
作者:seven97_top 时间:2024-10-15
最常用集合
ArrayList介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity)...
作者:arraylist详解 - seven97_top 时间:2024-10-15
上一页12345678下一页
  • • 一次彻底讲清如何处理mysql 的死锁问题
  • • MySQL 通过 Next-Key Locking 技术(行
  • • 一文彻底弄懂mysql的事务日志,undo lo
  • • Linux系统控制文件 /etc/sysctl.conf详
  • • linux命令useradd添加用户详解
  • • vi 和vim 的区别
  • • Linux系统下如何监测磁盘的使用空间
  • • linux中查看和开放端口
  • • Linux设置开放一个端口
  • • linux之ftp命令详解
  • • linux系统下实时监控进程以及定位杀死挂
  • • Linux下安装jdk8的方法
  • • 阿里云被挖矿进程wnTKYg入侵的解决方法
  • • 莫小安 CentOS7使用firewalld打开关闭防
  • • Linux中more和less命令用法
  • • linux系统里/opt目录和/usr/local目录的
  • • 如何使用Siege进行压测?
  • • 本地访问服务器的nacos地址
appphp工具微信电脑浏览器京东iphonewindows2025年支付宝2025淘宝会员堆ai循环ios小程序go微信小程序12306编码微信公众号小米操作系统路由器接口拼多多苹果主板android解决方法华为安卓天猫传感器贷款计算机https
  • 友情链接:
  • 编程之家
  • -
  • 我要投稿
  • -
  • 广告合作
  • -
  • 联系我们
  • -
  • 免责声明
  • -
  • 网站地图
版权所有 © 2018编程之家闽ICP备13020303号-8
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!