java中equse和==做比较记录(转)】的更多相关文章

String使用的equals方法和==的区别 equals方法和==的区别   首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello").但是它的内部动作其实还是…
HashMap源码简单分析: 1 一切需要从HashMap属性字段说起: /** The default initial capacity - MUST be a power of two. 初始容量 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** * The maximum capacity, used if a higher value is implicitly specified * by eit…
这是RTTI(运行阶段类型识别)的问题,c++有三个支持RTTI的元素: 1. dynamic_cast 操作符     如果可能的话,dynamic_cast操作符将使用一个指向基类的指针来生成一个指向派生类的指针:否则,该操作符返回空指针.这是最常用的 RTTI组件,它不能回答“指针指向的是哪类对象”这样的问题,但他能回答“是否可以安全地将对象的地址赋给特定类型的指针”这样的问题.如: class A{} class B: public A{} class C: public B{} 然后有…
//------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void setProperty (Object obj, String propertyName, Object value) // Object obj:所要使用的字节码class对象,String propertyName:所要获取对象的propertyName成员变量,Object value :给对象…
最近双11在网上买了本 数据结构和算法--java语言实现,正在啃,同时在慕课网上的学习进度来到了集合框架这一类,对于这一块算是刚刚了解,本科的时候数据结构学习的是严蔚敏老师的那本数据结构,代码的实现貌似全部是伪代码,记得在期末考试的时候狠狠的通读了一遍,当时对于几个常见的数据结构队列.数组.栈.堆的一些方法还是比较熟悉,但是一直以来心里一直有个疑问,因为书上的都是伪代码,具体实现的方法并没有给出实例化,后来直到现在开始学习java语言,希望可以在之前理解的情况下,通过对于书籍上java代码的实…
对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的操作.存储就出现了集合,集合应该是存储对象最常用的一种方式了,相对于数组更灵活,可变长度.同时集合也只能存储对象不能使基本数据类型. 集合框架分为两个派系Collection和Map而每一种集合类型都是基于特定的数据结构,Collection接口继承了Iterable接口所以可以使用Iterable…
php手册中对urlencode这样说明 在java中 URLEncoder做了这样注释 也就是说java中对星号"*"是不进行编码的 也就是说URLEncoder之后还是"*",PHP中urlencode是返回%2A Java跟PHP对空格都是处理成"+" 要实现Java与PHP中urlencode的一致,Java中可以这样做: //Java : output "+%2A" System.out.println(URLEnc…
什么是字符串常量池 JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池 工作原理 当代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用. 实现前提 字符串常量池实现的前提条件就是Java中String对象是不可变的,这样可以安全保证多个变量共享同一个对象.如果Java中的String对…
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎…
Java队列总结 通过前面文章的学习,我们对Java中常用队列做了介绍.本文,咱们来对队列做个总结吧. 首先,我们介绍了现实生活中的实际场景(排队买票等),来告诉我们为什么需要使用队列. 队列是一种先进先出(FIFO)的抽象数据结构,在Java中,队列使用了两种数据类型来实现的,分别是:数组和链表这两种数据结构. 本文主要内容:回顾Java中常用的七个阻塞队列进行总结及阻塞队列中四组AP并进行总结. 本文来源:本文是由凯哥Java(kaigejava)原创发布. 接着,我们介绍了队列的分类,可以…
今天同事提出了一个问题: 将对象a 转化为类型b,b 的classpath 是在配置文件中配置的,需要在运行中使用Class.forName 动态load进来,因为之前从来没有想过类似的问题,所以懵掉了,然后迅速的查找资料,先将结果做下记录,欢迎大家来讨论一下. 想法一: 能否使用Class.forName的返回值(Class<?>)来进行类型转换,代码如下: a o = new a(); (Class.forName("test.java.b"))o; 类型转换基本上都是…
在上一节中我们学习了在java中学习多线程下载的基本原理和基本用法,我们并没有讲多线程的断点续传,那么这一节我们就接着上一节来讲断点续传,断点续传的重要性不言而喻,可以不用重复下载,也可以节省时间,实现断点续传的关键在于怎么记录下载的进度和怎么标识,现在我们就来讲一下. 简言之就是:为每个线程开辟一个文件,分别来记录每个线程的下载进度,在每个线程下载之前判断这个标记文件是否存在,如果存在读取相应文件里面的数据,并将下载文件的线程设置到相应的下载点即可. 这一节的代码和上一节其实差不多,仅仅就是多…
1.关于Redis redis下载地址:<span style="font-family: Arial, Helvetica, sans-serif;">http://download.csdn.net/detail/he90227/8569855</span>   Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings.map. lis…
小Alan今天来跟大家聊聊开发中既简单又常用但必不可少的一样东西,那是什么呢?那就是日志记录,日志输出,日志保存. 后面就统一用日志记录四个字来形容啦. 日志记录是项目的开发中必不可少的一个环节,特别是对于后台服务节点程序来说,有了日志的输出便可以清晰的看到整个程序的运行过程,那么项目成功运行还好,我们就当是清晰的看看程序的运行过程好了,那万一项目要是出Bug了呢?如果这个时候没有上面所说的日志记录,日志输出,日志保存的话,那后果简直不堪设想,为啥?因为就算你的程序抛出了异常却并不意味着程序就一…
JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor 加载因子,使用无参构造方法时,此值默认是 0.75f 3.accessOrder false: 基于插入顺序 true: 基于访问顺序 其余的几个参数都好理解,关键是最后一个参数,是LinkedHashMap区别于其余类型的HashMap的一个关键特性所在. 对于accessOrder设置为true…
Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. 数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流.数据写入程序可以是一段.一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流.对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后…
这次项目上需要去证书中解析公钥所以这里分享下方法: 首先准备一个证书文件比如叫:test.crt(一般是cer结尾) 下一步准备把证书导入到导入java中的cacerts证书库里 方法如下: 比如本地的jdk路径是C:\Program Files\Java\jdk1.8.0_181那么接下来我们要进入C:\Program Files\Java\jdk1.8.0_181\jre\lib\security 这时我是把证书放在当前文件夹的所以终端敲以下命令 可以先敲下keytool -list -ke…
Win10系统中新增的快捷键,做个记录 1.Win+Q或者Win+S 打开下面搜索框                                2.Win+T 切换任务栏上程序:   3.Win+U 打开:控制面板\所有控制面板项\轻松使用设置中心:   4.Win+i 打开设置Setting   备注:Win8 的时候打开“更改电脑设置”   5.Win+P 投影   6.Win+K 连接无线显示和音频设备   7.Win +A 打开右下角的通知   8.Win+D和Win+M 显示桌面…
对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高不少,并且不受NTP等外部服务影响,能准确更准确来统计耗时(java中对应的是System.nanoTime),也就是说所有使用gettimeofday来统计耗时(java中是System.currenttimemillis)的做法本质上都是错误的. https://mp.weixin.qq.com…
本篇记录在java中邂逅正则表达式的所有美丽瞬间.因为在java和js中正则表达式的语法并不一致. 1.匹配字符串中有出现[2.1开头或者&2.1或者&3.1等的] Pattern m =Pattern.compile("^(2\\.).*|.*?(&2\\.1)+.*|.*?(&3\\.1)+.*|.*?(&4\\.1)+.*|.*?(&5\\.1)+.*"); m.matcher(字符串).matches(); 第二行为true即代表…
文章目录 使用JMH做性能测试 BenchmarkMode Fork和Warmup State和Scope 在java中使用JMH(Java Microbenchmark Harness)做性能测试 JMH的全称是Java Microbenchmark Harness,是一个open JDK中用来做性能测试的套件.该套件已经被包含在了JDK 12中. 本文将会讲解如何使用JMH来在java中做性能测试. 如果你使用的不是JDK 12,那么需要添加如下依赖: <dependency> <g…
java中常用的日志框架 日志接口 Commons Logging Apache Commons Logging是一个基于Java的日志记录实用程序,是用于日志记录和其他工具包的编程模型.它通过其他一些工具提供API,日志实现和包装器实现. SLF4J Java简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装Logging 框架的界面程式,以外观模式实现.可以在软件部署的时候决定要使用的 Logging 框架,目前主要支援的有Java Lo…
1.JAVA中的相对路径 file = new file("")与file = new file("./")方式相同,该路径为整个project的根目录(实际上为java虚拟机启动路径). 利用..可以返回上一层目录,file = new file("../")即project根目录的上一层目录. 可以利用Syetem.getProperty("user.dir")获得project目录,实际上相对路劲的基本目录即Syetem…
Java中使用String作同步锁 在Java中String是一种特殊的类型存在,在jdk中String在创建后是共享常量池的,即使在jdk1.8之后实现有所不同,但是功能还是差不多的. 借助这个特点我们可以使用String来作同步的锁,比如更新用户信息的时候,可以使用用户的名称作为同步锁,这样不同的用户就可以使用不同的锁,提升并发性能.这个特点扩展开来适当的场景就非常之多了. 只不过正因为String的特殊性,java还包含了更多的与字符串相关的工具类,如StringBuffer.String…
背景: MySQL的某个字段存放着一些时间戳格式的时间. 问题描述: Java程序将MySQL中的时间戳字段取出来,在Java程序中转成yyyy-MM-dd HH:mm:ss格式的时候,偶尔会出现转化情况跟数据库显示的时间不一致的现象,如在MySQL中存的是2018-01-01 12:12:00的时间戳,在Java中转化可能会变成2018-01-01 01:12:00之类的.比较异常的是,这种问题是偶尔出现的. 解决办法: 单机情况下无法重现,然后我对概率性出现这种现象的所在程序进行远程调试,将…
多线程下载在我们生活中非常常见,比如迅雷就是我们常用的多线程的下载工具,当然还有断点续传,断点续传我们在下一节来讲,android手机端下载文件时也可以用多线程下载,我们这里是在java中写一个测试,其实android中的实现和java是一样的,学会了java就知道怎么在android中实现了,废话不多说了,怎么实现多线程和多线程的原理是什么样的,现在我们来学习一下. 多线程下载原理及步骤:     1.在本地创建一个大小跟服务器文件相同大小的临时文件.     2.计算分配几个线程去下载服务器…
split()括号里是一个String的参数,所以一定要符合这种:split(".")形式,即点'.'要用双引号""括起来"."在java中已经被定义为特殊的字符,所以想要在split()中使用"."就必须对其进行转义,以免产生歧义,即在使用"."进行字符串的分割时要加"\\"才行如:String myString = "myblog.cnblogs"; myStri…
在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能.有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常.但是在查看这些API的文档时,我们却没有办法找到有关这些异常的详尽解释.在这种情况下,我们不能简单地忽略这些由throws所声明的异常: public void shouldNotThrowCheckedException() { // 该API调用可能抛出一个不明原因的Checked Exception exceptionalAPI(…
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java! 引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其实只有一半对,因为反应"多角色"的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现…
对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常 (NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明 者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间 在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null…