JDK
纳木错没有错
明天的你是否会感谢今天的自己?
展开
-
第23次讨论
2020年1月日15日 23.59.59截止 【第23次讨论主题:JDK版本】1)你用过最新的JDK版本是什么?(只要用过)jdk82) 最新的版本中有什么功能你觉得是惊艳到你的。这里的“最新的版本”,我就当做是我用过的最新的JDK8了。最惊艳的,我认为是stream 了。Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。首先流的获取(...原创 2020-01-02 21:06:07 · 231 阅读 · 1 评论 -
2种方式打开jar文件
1.桌面操作(要先安装JDK/JRE)对 “.jar”文件右击:然后点击这个“浏览”然后找到你安装JDK的文件,找到Java.exe,然后选中,然后用这个打开就好。2.用cmd(dos)命令打开我试过上述方法去打开我的jar文件,但没用,暂时没用找到原因,于是用命令打开1.先检查Java是否正常安装,输入java -version即可2.用命令+ 目录地址的...原创 2019-12-02 11:10:51 · 71640 阅读 · 3 评论 -
jdk 1.8 String
1)String变量到底存储在哪里?(JDK8) JDK1.8版本中,String常量池已经从方法区中的运行时常量池分离到堆中了,那么在堆中的String常量池里存的是String对象还是引用呢?答案是对象。例子1:String s1 = "abc";String s2 = "abc";System.out.println(s1==s2); // trueJVM首先会去字符串池中查找...原创 2019-08-21 20:12:27 · 999 阅读 · 2 评论 -
堆?栈?常量池(一)
作为Java程序员,了解堆和栈,是最基础的基本功。一句话总结堆和栈的作用,就是:堆放对象栈放常量,当然,栈也放了其他一些东西,比如基本类型。 今天说说常量池,这东西是jdk1.5提供的一个“缓存池”,包装类型Integer 在赋值时,比如Integer a = 10,这个时候我们会考虑,这个a是个对象吧,那它应该存放在堆里面咯,但事实是这样吗?当a的范围在-128...原创 2019-07-10 19:59:25 · 288 阅读 · 0 评论 -
ThreadLocal
先谈谈自己对ThreadLocal的认识:ThreadLocal是JDK 1.2的版本中提供java.lang包下提供的类,但把它理解成一个存储变量的集合或者局部变量会好一点。这个局部变量与一般的成员变量不一样,ThreadLocal的变量在被多个线程使用时候,每个线程只能拿到该变量的一个副本。其主要的作用是:ThreadLocal不是为了解决多线程访问共享变量,而是为每个线程创建一个单独的变...原创 2019-07-02 11:43:08 · 1634 阅读 · 0 评论 -
Java 访问修饰符的起源和作用
最近在看《Java编程思想》,这本书的确没有被过誉,是真正的Java第一书籍,当然,初学者还是不建议看,因为如果没有实际经验,很多地方就不能和作者产生“共鸣”。按照作者在书中所说的,访问修饰符最初出现的目的,是为了像客户端程序员指明那些代码是可用的,那些是不可用的,和重构代码有关,对此本文不作深入讨论。在开始之前,我们先说几个很大众的“常识”:package(包):库单元,包内包含有一...原创 2018-11-20 21:17:22 · 1027 阅读 · 0 评论 -
java 打印Javabean的无值属性
描述:在数据库中取出了一个对象,该对象的contractNo字段在数据库中为null,那么在代码中该字段打印出来是什么样?null打印出来是null,但在204行,如果打印的是supplierInfo.getTransportContractNo().toString(),,则会报空指针错误在项目中,我们可能要把这个属性通过map返回到前端页面,如果是null则返回“ ”的话,可以通...原创 2018-11-16 11:14:36 · 799 阅读 · 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对象初始化过程
假设有一下类:class Test{ int i; int j = 0; int count(){ return 0 }; Test() {} int n =0;}我们知道,任何对象在使用前都会被初始化,方法里面的局部变量必须给初始化值才能通过编译。现在我们来讨论一下初始化的过程:对于字段(变量)而言,如果是基本类型,那么...原创 2018-11-15 22:34:38 · 815 阅读 · 0 评论 -
浅谈Java static 关键字
虽然已经工作了,但我还是想扎实一下Java的基本功,拿起了刚学Java时买的《Java编程思想》来看看。果然是神书,受益匪浅,尽管它的版本很落后,但一些基础性的问题能让人有醍醐灌顶的感觉,本片博客大部分内容源自《Java编程思想》中文版。static,意为静态的。1.从对象说起我们用new关键字来创建对象时,数据存储空间才被分配,这个对象的方法才供外界调用。但有两种情况上述方法是解决不...原创 2018-11-13 23:13:44 · 177 阅读 · 0 评论 -
java String 转 double
Double.parseDouble(String)原创 2018-11-05 15:13:12 · 25233 阅读 · 2 评论 -
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 评论 -
再也不会忘记它们的区别:==和equals()
我想很多初学者和我一样,怎么也会忘记==和equals()的区别,哪怕在准备面试的时候,也是背了忘,忘了背,反正就是记不住吧。这次项目中因为要比较字符串是否相等,所以在if()判断里面采取了“==”的方式,逻辑处理是正确的,但就是进去不,才想起来是这个的问题,注意,一下是错误示范,只是为了实例证明==和equals()两者的区别: 两个字符串都是“1024”,但i...原创 2018-09-16 16:22:22 · 153 阅读 · 0 评论 -
图解ConcurrentHashMap
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集...转载 2018-08-10 15:24:09 · 29376 阅读 · 6 评论 -
浅谈JavaBeansh和IoC
什么是Javabean?对于初学者或者初级程序员来说,这个概念是模糊不清的,在很长一段时间内,我只能简单的把它理解成“对象”这个概念,到后来的POJO(普通的Java对象,仅有属性和方法,没有GET/SET方法,也没有为空的构造函数),我记得当时那两天我一直在找各种资料,尝试去理解Javabean,后面对它的理解又到了“容器”着一个阶段,被容器管理起来的Java对象,就是Javabean,...原创 2018-07-25 17:31:10 · 251 阅读 · 0 评论 -
深入理解hashmap集合的底层数组长度为什么一定为2的幂次
最近看了Java中hashmap的源码,做了一下总结。应该是讲清楚了的:原创 2018-03-07 09:38:40 · 1742 阅读 · 0 评论