java JVM解析
JVM是非常深奥的一块区域,和JDK组成了java基础,不求我能把JVM弄的一清二楚,但希望自己能有一些收获
纳木错没有错
明天的你是否会感谢今天的自己?
展开
-
哈希码的计算 (hashCode()与equals() )
在Java世界中,所有的类都源自基类object,在object类中,有public native int hashCode(),该方法返回一个hash值:Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。1)自主选择一个类,说明它hashCode方法的设计理念和代码核心逻辑。类hashmap...原创 2019-10-24 14:50:55 · 1539 阅读 · 0 评论 -
再谈Java对象:“=”的大坑
开始之前,我们先来看一段代码:class Tank{ int level;}public class assingment{ public static void main(String[] args) { Tank tank1 = new Tank(); Tank tank2 = new Tank(); t1.l...原创 2018-11-14 21:48:19 · 263 阅读 · 0 评论 -
浅谈Java static 关键字
虽然已经工作了,但我还是想扎实一下Java的基本功,拿起了刚学Java时买的《Java编程思想》来看看。果然是神书,受益匪浅,尽管它的版本很落后,但一些基础性的问题能让人有醍醐灌顶的感觉,本片博客大部分内容源自《Java编程思想》中文版。static,意为静态的。1.从对象说起我们用new关键字来创建对象时,数据存储空间才被分配,这个对象的方法才供外界调用。但有两种情况上述方法是解决不...原创 2018-11-13 23:13:44 · 177 阅读 · 0 评论 -
java 字符串拼接为什么不能用null
自己写代码的时候,第一次用String str= null;然后去拼接字符串,在查询的时候报错,debug检查出来,最终的参数字符串str里面居然有null,如图: 所以拼接字符串不能用null,原因如下:s = s+"word"; 等价于 s = String.valueOf(s)+"word"; Integer,Double都一样。//jdk源码public stat...原创 2018-10-24 14:57:26 · 5568 阅读 · 1 评论 -
java 字符串替换、删除某些字符
这是一个老生常谈的话题,用String.replace("-", "")方法:第一个参数是你要替换的字符,第二个参数是用于取代旧字符串的新字符。下面谈一谈那些场景用到的比较多:去掉字符串中多余的字符,比如吧abc变成ac,这样写就好了.replace("b", ""),第二个参数为"",这里就有一个问题,如果原字符串里面有多个要去掉的字符,比如abcabc,我都要去掉b,我需要些两次这...原创 2018-10-10 19:33:38 · 38039 阅读 · 0 评论 -
深入理解hashmap集合的底层数组长度为什么一定为2的幂次
最近看了Java中hashmap的源码,做了一下总结。应该是讲清楚了的:原创 2018-03-07 09:38:40 · 1742 阅读 · 0 评论 -
图解ConcurrentHashMap
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集...转载 2018-08-10 15:24:09 · 29376 阅读 · 6 评论 -
再也不会忘记它们的区别:==和equals()
我想很多初学者和我一样,怎么也会忘记==和equals()的区别,哪怕在准备面试的时候,也是背了忘,忘了背,反正就是记不住吧。这次项目中因为要比较字符串是否相等,所以在if()判断里面采取了“==”的方式,逻辑处理是正确的,但就是进去不,才想起来是这个的问题,注意,一下是错误示范,只是为了实例证明==和equals()两者的区别: 两个字符串都是“1024”,但i...原创 2018-09-16 16:22:22 · 153 阅读 · 0 评论 -
tomcat解压后文件夹目录分析说明
以上是常见的Tomcat解压后的目录,具体的作用如下:bin:二进制执行文件。里面最常用的文件是startup.bat,如果是 Linux 或 Mac 系统启动文件为 startup.sh。 conf:配置目录。里面最核心的文件是server.xml。可以在里面改端口号等。默认端口号是8080,也就是说,此端口号不能被其他应用程序占用。 lib:库文件。tomcat运行时需要的jar包...原创 2018-08-07 08:38:43 · 1507 阅读 · 0 评论 -
Java对象的创建(1)
String str=new String("abc")原创 2017-12-18 15:38:07 · 664 阅读 · 2 评论