![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
imiMi_
这个作者很懒,什么都没留下…
展开
-
记一次maven发现本地仓库jar问题
最近学习dubbo,在本地模拟了一个服务端、一个客户端,客户端需要引入服务端的jar包,因为是跨进程引入,所以需要服务端打包、然后客户端引入maven依赖。本以为很简单的事情,到头来花费不少时间。现在记录一下,以后踩坑回来翻一翻。 下面是我客户端引入服务端的依赖,pom文件可以引入,不报错,但是使用其中的类使用不了。对于这个问题,我尝试过清空仓库、修改仓库地址、删除类的remote文件,不能说没有用,偶尔会正常引用到目标类,这...原创 2021-11-19 17:44:27 · 797 阅读 · 0 评论 -
[JAVA练习] 如何高效判断一个数是否是2的n次幂
一个数是否是2的幂次方,比较常用的是递归和移位运算进行判断。递归算法的思想很简单,就是不断的模上2去判断。 如果一个数是2的幂,那么它的二进制表示中就只有一位1,例如:10000,1000,100等等。所以如果对数字1进行移位操作,总会在移到某个位的时候和这个数相等。这就是移位判断的思想。 下面给出实现的代码,在实现中,还采用了第三种方式,因为二进制表示的2的幂次方数中只有一个1,后面跟的...转载 2018-10-29 15:29:31 · 2670 阅读 · 0 评论 -
HashMap底层实现原理
HashMap底层实现原理通过查看源码进行分析,即通过查看HashMap.classJDK 1.6.0_451、HashMap类HashMap继承了AbstaractMapAbstractMap实现了Map接口(AbstarctMap中实现了Map中常用/常见方法)HashTable提供了Map接口所有可选的实现,并且语序key和vaule为null,HashMap基本功能和Has...转载 2018-10-29 15:48:15 · 3105 阅读 · 1 评论 -
int 和 Integer 有什么区别,Integer的值缓存范围
目录int与Integer的基本使用对比int与Integer的深入对比int与Integer的基本使用对比Integer是int的包装类;int是基本数据类型;Integer变量必须实例化后才能使用;int变量不需要;Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值;Integer的默认值是null;int的默认值是0。int与Int...转载 2018-11-13 11:31:57 · 803 阅读 · 0 评论 -
JAVA8 十大新特性详解
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Inte...转载 2018-11-08 16:09:33 · 157 阅读 · 0 评论 -
String中intern的方法
String中intern的方法首先查看官方API那个的解释:———————————————————————————————————————internpublic String intern()返回字符串对象的规范化表示形式。一个初始时为空的字符串池,它由类 String 私有地维护。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该...转载 2019-01-04 16:58:41 · 182 阅读 · 0 评论 -
zookeeper安装和使用 windows环境
简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单...转载 2019-01-15 09:57:08 · 153 阅读 · 0 评论 -
b += a与b = a+b的区别
先来看以下代码:byte a = 126;byte b = 127;b = a + b;b += a;double c = 0.5;int d = 1;d = c + d;d += c;其中b = a + b 与 d = c + d是编译不过的。而 += 可以通过编译是因为 += 会隐式的将加操作的结果类型转换为持有结果类型,所以 b += a 经过了 (byte)...原创 2019-02-26 17:11:51 · 1620 阅读 · 0 评论 -
Java中如何判断两个对象是否相等(Java equals and ==)
原文:https://www.dutycode.com/post-140.html如何判断两个对象相等,这个问题实际上可以看做是如何对equals方法和hashcode方法的理解。从以下几个点来理解equals和hashCode方法:1、equals的作用及与==的区别。2、hashcode的作用及与equa...转载 2019-04-15 13:35:19 · 834 阅读 · 0 评论 -
ArrayList、Vector、HashMap、HashSet的默认初始容量、负载因子、扩容增量
当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩容情况不同。 List 元素是有序的、可重复Arr...转载 2018-09-21 11:16:34 · 2152 阅读 · 3 评论 -
LinkedHashMap在不同排序方式下的遍历
LinkedHashMap字面上意思为有序集合,有两种排序方式,分别是按输入顺序与读取顺序,可通过以下构造方法来指定其排序方式:public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {...原创 2018-09-21 11:05:23 · 5960 阅读 · 1 评论 -
DecimalFormat 数据格式化类的使用小结
api:DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。import ...转载 2018-08-09 10:33:57 · 651 阅读 · 0 评论 -
java异常的捕获与抛出原则
在可能会出现exception的地方,要使用try-catch或者throws或者两者都要。我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-catch掉这个exception;如果希望外部知道,则在catch到之后把exception直接抛出或者抛出自定义的exception。 一、异常的种类 java异常可以分成两大类:Exc转载 2017-04-11 19:11:04 · 1496 阅读 · 1 评论 -
Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
> 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现。1. 加号 “+”2. String contact() 方法3. StringUtils.join() 方法4. StringBuffer append() 方法5. StringBuilder append(转载 2017-08-09 09:44:30 · 1977 阅读 · 0 评论 -
Java 编程下通过反射获取一个类中的方法名和对应参数名
package cn.sunzn.reflectcase;import java.lang.reflect.Method;public class GetMethod { public static void main(String[] args) { getMethodInfo("java.util.HashSet"); } /** * 传入全类转载 2017-08-11 09:48:20 · 755 阅读 · 0 评论 -
浅谈使用单元素的枚举类型实现单例模式
通常情况下,我们写单例模式的时候无非就是三个步骤:构造器私有化,声明私有静态变量,提供静态获取实例的方法。简单说就是以下这种方式:class SingletonA { private static SingletonA instence = new SingletonA(); private SingletonA() { } public static Sing转载 2017-08-11 15:17:48 · 322 阅读 · 0 评论 -
货币金额的计算 - Java中的BigDecimal
在《Effective Java》这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。,而且使用BigDecimal类也可以进行大数的操作。表11-15 BigDecimal类的常用方法,具体参考API http://download.java.net/jdk/jdk-api-localizati转载 2017-12-06 14:39:06 · 388 阅读 · 0 评论 -
Java中的Infinity和NaN
1、i == i + 1一个数字永远不会等于它自己加1?Java 强制要求使用IEEE 754 浮点数算术运算[IEEE 754],它可以让你用一个double 或float来表示无穷大。正如我们在学校里面学到的,无穷大加1还是无穷大。你可以用任何被计算为无穷大的浮点算术表达式来初始化i,例如:double i = 1.0 / 0.0;不过,你最好是能够利用标准类库为你提供的常量:转载 2017-12-06 14:40:47 · 438 阅读 · 0 评论 -
for循环内StringBuilder字符串拼接
public static void main(String[] args){ String[] tempStr = {"a","b","c","d","e","f","g","h","i"}; StringBuilder sb = new StringBuilder(); for(String str :原创 2018-05-08 09:34:24 · 3623 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的...转载 2018-07-09 10:47:04 · 160 阅读 · 0 评论 -
map containsKey与get方法区别经典总结
前提是:Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey(转载 2017-04-11 19:21:05 · 664 阅读 · 0 评论