![](https://img-blog.csdnimg.cn/20191204135523703.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
胶泥座人
程序员永远不能说不!!!
展开
-
对Arraylist遍历进行remove操作时报数组下标越界异常
原因是每次remove后的size都会发生变化,但是迭代基数没有根据remove后的size动态调整,导致越界及集合遍历不完全。正确方法如下:ArrayList arr = new ArrayList(); for(int i = 10;i<15;i++) arr.add(i); arr.add(10); arr.add(10); arr.add(10); arr.add(10)...原创 2020-05-15 14:36:26 · 1563 阅读 · 0 评论 -
JAVA开发中的四种加密方法
文章目录一、工具类md5加密工具类 base64加密工具类 Bcrypt工具类二、加密测试MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试一、工具类1. md5加密工具类package 加密Tester.util;import java.security.MessageDigest;public class MD5Utils {...转载 2020-05-08 13:58:10 · 630 阅读 · 0 评论 -
代码重构
答应我,别再写上千行的类了好吗?最近在对已有项目进行扩展的时候,发现要改动的一个类它长766行,开放了近40个public接口,我流着泪把它给改完了。为了防止这样的惨剧再次发生在我的身上,我觉得有必要写一篇博客来让广大程序猿同胞知道代码重构的重要性如果你身边有一个类写上千行的猿,一定要把此文转给ta为什么类不能过长?类过长——读不通,扩展不...转载 2020-04-30 11:05:44 · 243 阅读 · 0 评论 -
9 个小技巧让你的 if else看起来更优雅
我们本文提供了 9 种方法来解决掉那些“烦人”的 if else,一起来看吧。1.使用 return我们使用return去掉多余的 else,实现代码如下。优化前代码:if(str.equals("java")) {// 业务代码 ! true;}else{return;}优化后代码:if(str.equals("java")) {...转载 2020-04-30 10:46:56 · 236 阅读 · 0 评论 -
MD5加密方法
public static String a1(String str) { try { MessageDigest instance = MessageDigest.getInstance("MD5"); char[] toCharArray = str.toCharArray(); byte[] bArr =...原创 2020-04-27 18:18:10 · 148 阅读 · 0 评论 -
Java 基础系列:图解Java内存
进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提。 简单通俗的讲,一个完整的Java程序运行过程会涉及...转载 2020-04-27 12:06:25 · 364 阅读 · 0 评论 -
Java中通过BigDecimal实现float浮点型保留2位小数或者其它指定位数
float f = 2.546546546454564f;BigDecimal b = new BigDecimal(influCount); f = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();System.out.println(f);输出结果为2.55。BigDecmal类setScale()方法说明参考下图:...原创 2020-03-12 09:48:14 · 2286 阅读 · 0 评论 -
如何向纯洁的女朋友解释并发与并行的区别?
现在我们都说设计可并行、高并发的程序,而且我们很多时候会在潜意识里觉得自己对并行(Parallelism)和并发(Concurrency)的区别很清楚,但如果要明确的说出二者的区别,又感觉没办法给出一个非常清晰的描述。那么什么是并发?什么又是并行呢?并行的概念比较简单,并行总是和执行(executions)相关,很多东西同时执行就是并行;而并发则是通过一些方式组织你的程序,让它可以分成多个模块...转载 2019-11-21 09:54:12 · 134 阅读 · 0 评论 -
StringBuilder.append()与String的"+"的效率PK
如果String通过"+"来拼接,如果拼接的字符串是常量,则效率会非常高,因为会进行编译时优化,这个时候StringBuilder的append()是达不到的。如果将String的"+"放在循环中,会创建很多的StringBuilder对象,并且执行之后会调用toString()生成新的String对象,这些对象会占用大量的内存空间而导致频繁的GC,从而效率变慢。StringBuilde...转载 2019-10-12 09:58:10 · 241 阅读 · 0 评论 -
Java中判断变量值不为空
if(name != null && !name.equals("")) { //代码处理}原创 2019-10-12 09:59:50 · 3007 阅读 · 0 评论 -
将json数据中不在正文中的图片替换到正文中
首先将以下json数据利用解析工具解析{"@type":"cn.rednet.openx.vo.ReturnMap","body":{"@type":"cn.rednet.moment.vo.ContentDetailVo","adId":147,"adImg":"/rednetcms/u/cms/www/201811/12135857rtwc.jpg","adLink":"https://...原创 2019-09-10 09:35:46 · 681 阅读 · 0 评论 -
Unclosed character class near index 1 :[ 转义符问题
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 1:[at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.clazz(Unkno...原创 2019-09-08 15:03:03 · 1726 阅读 · 0 评论 -
将字符串 Jul 16, 2019 转为Date类型
String date = ("Jul 16, 2019").replace(",", ""); //需要先将,替换掉Date createDate = new SimpleDateFormat("MMM dd yyyy", Locale.US).parse(date);System.out.println(createDate);输出结果为Tue Jul 16 00:00:00 ...原创 2019-07-17 22:53:44 · 1106 阅读 · 0 评论 -
无key值的json数组解析
当字符串str为以下json对象时,想要获取key为city中的第一个数据beijing的时候,{ "type": 1, "city": [ "beijing","shanghai","guangzhou"]}首先需要通过getJSONArray方法获取到json数组city,然后再用getString(0)即可获取到第一个参数beijing,同理,获取shanghai...原创 2019-05-11 21:42:56 · 4307 阅读 · 0 评论 -
如何获取字符串中最后一个a标签href的值
String = " </a> <b>1</b> <a href="/news/201804/28/207901_2.html">2</a> <a href="/news/201804/28/207901_3.html">3</a> <a h原创 2018-05-04 14:28:50 · 1474 阅读 · 1 评论 -
Java中的转义字符
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符3.特殊字符:就3个 \":双引号 \':单引号 \\:反斜线4.控制字符:5个 \' 单引号字符 \\ 反斜杠字符 \r 回车 \n 换行 ...原创 2018-04-27 15:34:06 · 520 阅读 · 0 评论 -
使用ibatis从数据库中查询到的结果中部分属性为null和0
使用ibatis和struts2从数据库中查询到的Folder对象中部分属性 foldName=null 并且 seqNo=0 ,可是在数据中这几个字段并不是null或者是0,打开实体类后,发现folderName和seqNo两个属性的set方法有错误,解决办法:将现有set方法删除后,通过shift+Alt+s快捷键重新生成该属性对应的set方法即可,正确的set方法应该是 thi...原创 2018-07-26 23:01:20 · 1365 阅读 · 0 评论 -
如何用正则表达式匹配汉字
[\u4E00-\u9FA5\\s]+ 多个汉字,包括空格[\u4E00-\u9FA5]+ 多个汉字,不包括空格[\u4E00-\u9FA5] 一个汉字原创 2018-09-20 17:27:34 · 59948 阅读 · 9 评论 -
日期:将格林尼治时间(GMT)转化为北京时间
格里尼治时间,就是我们常常说的0度经线的地方平时,也叫格林平时,格林平时的英文是Greenwich Mean Time,简称GMT,实际上就是UT(universal time )也叫世界时的。 从0度格林经线到120度东八区时区经线,经差为120度,换算成时间为8小时(120除以15),所以格林平时和北京时间差八小时,而且是北京时间比格林平时快8小时,因此是在格...原创 2018-10-31 10:32:13 · 11599 阅读 · 0 评论 -
正则表达式如何匹配括号
在用正则表达式匹配小括号()时,应将括号用[]包起来,如下:regexs = "{\"regexs\":[\"showPlayer[(]'(.*?)'\"]}";videoUrl = DownloadUtil.getParseResult(filed.toString(), regexs);...原创 2018-10-24 14:25:14 · 81939 阅读 · 0 评论 -
如何获取字符串中最后一个a标签href的值
如下链接:String = " </a> <b>1</b> <a href="/news/201804/28/207901_2.html">2</a> <a href="/news/201804/28/207901_3.html">3</a> &a原创 2018-12-04 10:40:01 · 531 阅读 · 0 评论 -
MUI:字符串和json数据的相互转换
JSON.parse()--字符串转换json、JSON.stringify()--json转换成字符串 如:收到Json对象:response,如:{"result":"aaa","bbb","ccc"}两种方法转为字符串:1.response = JSON.stringify(response);respnoseEl.innerHTML = response; ...原创 2018-12-11 15:31:35 · 1125 阅读 · 0 评论 -
Java读取properties文件的方法
假设有properties文件命名为config.properties,内容为android.version=1.1ios.version=1.2则首先创建一个读取文件的Config类,并写读取方法getValue():import java.io.FileNotFoundException;import java.io.IOException;import java.uti...原创 2019-03-06 23:07:24 · 103 阅读 · 0 评论 -
null和""以及==与equals的区别
string类型与null比较用==,string类型与空字符串“”比较用equalsString str1 = null; str引用为空String str2 = ""; str引用为空串1.直接点就是null没有分配内存空间,而""分配了内存空间,因此str1还不是一个实例化的对象,而str2已经实例化。2.注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1=...原创 2019-05-11 21:05:53 · 650 阅读 · 0 评论