![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
离散小维
这个作者很懒,什么都没留下…
展开
-
Java String对象的问题 String s=“a“+“b“+“c“+“d“ 变态问题
Java String对象的问题 String s="a"+"b"+"c"+"d"1, String s="a"+"b"+"c"+"d"创建了几个对象(假设之前串池是空的)2,StringBuilder sb = new StringBuilder();String a = "a";String b = "b";String c = "c";String d = "d...原创 2019-11-21 17:55:52 · 1019 阅读 · 0 评论 -
JVM 对 Java 的原生锁做了哪些优化?
自旋锁在 Java 6 之前,Monitor 的实现完全依赖底层操作系统的互斥锁来实现。由于 Java 层面的线程与操作系统的原生线程有映射关系,如果要将一个线程进行阻塞或唤起都需要操作系统的协助,这就需要从用户态切换到内核态来执行,这种切换代价十分昂贵,很耗处理器时间,现代 JDK 中做了大量的优化。一种优化是使用自旋锁,即在把线程进行阻塞操作之前先让线程自旋等待一段时间,可能在等待期间...原创 2019-11-20 16:51:49 · 1862 阅读 · 0 评论 -
什么是可重入性,为什么说 Synchronized 是可重入锁?
什么是可重入性,为什么说 Synchronized 是可重入锁?可重入性是锁的一个基本要求,是为了解决自己锁死自己的情况。一个类中的同步方法调用另一个同步方法,假如 Synchronized 不支持重入,进入 method2 方法时当前线程获得锁,method2 方法里面执行 method1 时当前线程又要去尝试获取锁,对 Synchronized 来说,可重入性是显而易见的,刚才提到,在执...原创 2019-11-20 14:56:58 · 3917 阅读 · 0 评论 -
Synchronized 原理是什么? 2019 java 后端面试
Synchronized 是由 JVM 实现的一种实现互斥同步的一种方式,如果你查看被 Synchronized 修饰过的程序块编译后的字节码,会发现,被 Synchronized 修饰过的程序块,在编译前后被编译器生成了 monitorenter [ˈmɒnɪtə(r)] [ˈentə(r)] 和 monitorexit 两个字节码指令。这两个指令是什么意思呢?在虚拟机执行到 moni...原创 2019-11-20 14:52:34 · 180 阅读 · 0 评论 -
2019 阿里系 BTA JAVA 面试题
一、Java基础什么是字符串常量池? String为什么是不可变的? String s = new String("xyz");究竟产生了几个对象,从JVM角度谈谈? String拼接字符串效率低,你知道原因吗? 你真的了解String的常见API吗? Java中的subString()真的会引起内存泄露么? 浅析Java中的final关键字? 浅析Java中的static关键字...原创 2019-11-20 14:40:02 · 580 阅读 · 2 评论 -
为什么Java不支持运算符重载
操作符重载增加了复杂性,这与JAVA最初的设计思想不符,它并不实用,反而增加了程序的阅读性。原创 2019-11-14 10:55:37 · 179 阅读 · 0 评论 -
为什么wait 和 notify 在 Object 类而不在 Thread 中声明?
1) wait 和 notify 不仅仅是普通方法或同步工具,更重要的是它们是 Java 中两个线程之间的通信机制。对语言设计者而言, 如果不能通过 Java 关键字(例如 synchronized)实现通信此机制,同时又要确保这个机制对每个对象可用, 那么 Object 类则是的正确声明位置。记住同步和等待通知是两个不同的领域,不要把它们看成是相同的或相关的。同步是提供互斥并确保 Java 类的...转载 2019-11-14 09:42:18 · 1178 阅读 · 0 评论 -
StringUtil 字符串处理工具
一个字符串处理的工具类(●’◡’●)包含以下功能:判断应用程序是否安装字符拆分成数组MD5 加密拼接后的字符串替换字符串判断多个参数是否都为空将字符串转换成HTML格式的字符串将HTML格式的字符串转换成常规显示的字符串获取加密的手机号检查手机号验证固定电话号码检查密码有效根据string.xml资源格式化字符串验证身份证号码将元单位数字转成int类型的元格式化...转载 2018-11-27 17:34:53 · 934 阅读 · 2 评论 -
java.sql.SQLException: ORA-00918: 未明确定义列ORA-00918
java.sql.SQLException: ORA-00918: 未明确定义列ORA-00918意思就是sql查询出来有两个或者多个相同的列,Oracle MyBatis 它不知道怎么办(resultType),所以就报这个异常。小蠢蛋,这回解决了吧。...原创 2018-12-04 10:25:19 · 8956 阅读 · 2 评论 -
按照时间 查找数据库历史存储内容
--按照时间 查找数据库历史存储内容select * from jw_jg_jzgxxb as of timestamp to_timestamp('2018-09-27 18:00:00', 'yyyy-mm-dd hh24:mi:ss') where 1=1;原创 2018-12-04 10:25:13 · 530 阅读 · 0 评论 -
oracle 查询死锁 表
--查询死锁 表 查出来的东西 ,直接 copy 出来执行,就能杀死了。还不谢谢我。SELECT lo.SESSION_ID ,s.SERIAL#,ao.object_name,'ALTER system KILL session '''||lo.SESSION_ID||','||s.SERIAL#||''';' FROM v$locked_object lo, dba_objects ao...原创 2018-12-04 10:25:08 · 2061 阅读 · 0 评论 -
数据库连接 卡死 问题排查
--数据库连接 问题--1.查看当前连接进程数select count(*) from v$session; --查看连接数上限select value from v$parameter where name = 'processes'; --更改系统连接数 可以视业务需要增加processes和sessions参数的大小,这二者的关系是:sessions=(1.1*proc...原创 2018-12-04 10:24:47 · 2764 阅读 · 2 评论 -
MyBatis——mapper.xml 需要注意的地方和一些官方规则
映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert、update、delete、select(增删改查);cache、cache-ref、resultMap、parameterMap、sql。配置文件如下<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper ...原创 2019-01-16 09:52:09 · 1454 阅读 · 0 评论 -
解决 com.alibaba.fastjson.JSONException: illegal identifier : 问题
问题还原:在js 中 使用var jsonArray=[];obj.test= $(item).attr("test");jsonArray.push(obj);jsonData=JSON.stringify(jsonArray);传入后端进行解析String jsonData = StringEscapeUtils.unescapeHtml(getRequest()....原创 2019-01-16 09:51:55 · 38194 阅读 · 2 评论 -
Attribute "nethod" must be declared for element type "action".问题
struts 配置文件 控制台报错Attribute "nethod" must be declared for element type "action".可能是配置文件中的标签或者属性写错了。导致的此类错误.你个小笨蛋。...原创 2018-11-27 17:31:47 · 836 阅读 · 0 评论 -
mybatis 支持的标签操作
62.mybatis支持的标签操作mybatis只支持include|trim|where|set|foreach|choose|if这几个操作原创 2018-11-27 17:30:47 · 196 阅读 · 0 评论 -
发起Ajax判断
//判断审批业务是否配置过审批流程 function checkExist(ywdm){ var flag;//true为已配置过 false为未配置过 jQuery.ajaxSetup({async:false}); $.post(_path + '/query/query_cxSpYwdmExist.html',{"ywdm":ywdm},function(data){fl...原创 2018-12-05 09:54:37 · 150 阅读 · 0 评论 -
js 使用迭代器 判断 重复
// 校验重复 var jcs=[]; $("#tabGrid4").find("tr.jqgrow ").each(function(i, item){ jcs.push($(item).find("input.jcmc").val()+"_"+$(item).find("input.jczz").val()+"_"+$(item).find("input.cbs&q原创 2018-12-05 09:54:15 · 309 阅读 · 0 评论 -
js validator 增加验证 数字格式验证
// checkZHCJ校验规则 jQuery.validator.addMethod("checkZHCJ", function(value, element, param) { var regex =/(^[1-9](\d{0,2})?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/; var flag = regex....原创 2018-11-27 15:23:28 · 2143 阅读 · 0 评论 -
MyBatis jdbcType类型
<resultMap type="java.util.Map" id="resultjcm"> <result property="FLD_NUMBER" column="FLD_NUMBER" javaType="double" jdbcType="NUMERIC"/> <result property=&原创 2018-11-27 17:15:33 · 147 阅读 · 0 评论 -
在model 中将数据编码 转换 最笨的方法
get set 返回的return StringUtils.isURLEncoderString(xh)?URLUtils.unescape(xh):xh;原创 2018-11-27 17:19:29 · 383 阅读 · 0 评论 -
PropertyUtils 工具类
主要目的是利用反射机制对JavaBean的属性进行处理,减少对JavaBean的处理导致大量get/set代码堆积 XyyxszModel xyyxszModel = service.getModel(model); PropertyUtils.copyProperties(model, xyyxszModel);...原创 2018-11-27 17:26:45 · 1049 阅读 · 0 评论 -
弹出框 自动提交表单的问题 如何解决
39.关于弹出框 自动提交表单1.弹出框里面的按钮 button 要加上TYPE="BUTTON" 不然在IE或者其他浏览器的时候会自动提交表单2.似乎表单的地方也要加submit = "return false"...原创 2018-11-27 17:29:05 · 1081 阅读 · 0 评论 -
XML 转义符
&lt; < 小于号 &gt; > 大于号 &amp; & 和 &apos; ’ 单引号 ...原创 2018-11-27 17:30:10 · 5481 阅读 · 0 评论 -
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For i
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "</"提交内容存在HTML 文本的时候 提交表单会报错 ,需要用工具修复一下String jsonData = StringEscape...原创 2019-05-22 11:47:23 · 1118 阅读 · 0 评论 -
获取当天是星期几
/** * *@描述:获取当天是星期几 *@创建人:kwy *@创建时间:Aug 22, 20181:38:55 PM *@修改人: *@修改时间: *@修改描述: *@return */ private String getDayOfWeek(){ int index = Calendar.getInstance().get(Calendar.DA...原创 2019-05-22 11:48:37 · 315 阅读 · 0 评论 -
前端传入代码 带 html 文本,需要用 该方法进行处理
前端传入代码 带 html 文本,需要用 该方法进行处理String jsonData = StringEscapeUtils.unescapeHtml(getRequest().getParameter("jsonData")); List<PyfakcxxModel> modelList = JSON.parseArray(jsonData, Pyf...原创 2019-08-28 17:03:44 · 400 阅读 · 0 评论 -
SpringCache与redis集成,优雅的缓存解决方案
转载:https://www.cnblogs.com/chenkeyu/p/8028781.html 缓存可以说是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache、Guava、HazelCast等。Redis作为key-value型数据库,由于他的这一特性,Redis也成为一种流行的数据缓存工具。 在传统方式下对于缓存的处理代码是非常臃...转载 2019-08-12 14:17:41 · 119 阅读 · 0 评论 -
JAVA 开发 工程师 面经 大厂 2019
#一面1.写出知道的所有单例模式的写法首先我们先了解一下什么是单例?答:单例模式是一种设计模式,是指一个类仅仅能有一个实例。我们平常用到的都是原型,原型指的是一个类可以有多个实例,称为原型。单例有三种写法:/** * *@类名称:ZooKeeperProSync.java *@类描述:双重锁 双重锁写法用到了两个synchronized, * ...原创 2019-08-20 17:10:59 · 253 阅读 · 0 评论 -
List 去重复 面试题 含有 jdk1.8 方法
面试中经常被问到的list如何去重,一般是口述,不需要代码体现,这个时候,思维一定要清晰,可以罗列出集中去重的方法,以展现你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固 下面,我就将五种方法逐一展现 新建一个list数组: List list = new ArrayList(); list.add(26); list.add(39); list.add(5...原创 2019-08-14 20:34:43 · 380 阅读 · 0 评论 -
BigDecimal 超过16位有效位的数进行精确运算
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算...原创 2019-08-05 14:06:59 · 5081 阅读 · 0 评论 -
java 写 pdf 方式
jsp 页面<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!doctype html><html><head><%@ include file...原创 2019-07-04 17:11:39 · 223 阅读 · 0 评论 -
Java Utils工具类 设计
源码和jar见:https://github.com/evil0ps/utils#Java Utils---封装了一些常用Java操作方法,便于重复开发利用.另外希望身为Java牛牛的你们一起测试和完善,欢迎入群263641914 一起封装和完成常用的Java代码。节约撸码时间以方便有更多的时间去把妹子~#开发环境 Win7x64 JDK1.7 ID...转载 2019-05-23 14:27:25 · 847 阅读 · 0 评论 -
NEW关键字的使用_JAVA_OOP(1)
1.NEW 关键字创建对象类定义完成以后可以使用NEW关键字创建对象,这个过程叫做“实例化” 引用类型变量 Cell c = new Cell(); 类 引用类型变量 对象原创 2017-09-05 16:02:53 · 236 阅读 · 0 评论 -
Java中final,finalize和finally的区别
finalfinal关键字可以用于类,方法,变量前,用来表示该关键字修饰的类,方法,变量具有不可变的特性。(1)final关键字用于基本数据类型前:这时表明该关键字修饰的变量是一个常量,在定义后该变量的值就不能被修改。(2)final关键字用于方法声明前:这时意味着该方法时最终方法,只能被调用,不能被覆盖,但是可以被重载。(3)final关键字用于类名前:此时该类被称为最终类,该类转载 2018-02-07 14:14:46 · 136 阅读 · 0 评论 -
最新 java多线程的三种实现方法
1.继承Thread类public class ExtendsThreadWay extends Thread{ @Override public void run() {//重写 run 方法 for (int i = 0; i < 10; i++) { System.out.println("------多线程-------" + i);原创 2018-02-07 14:18:10 · 130 阅读 · 0 评论 -
JAVA-sleep和wait的区别
sleep和wait的区别有:1,这两个方法来自不同的类分别是Thread和Object2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用synchronized(x){x.notify()//或者wa原创 2018-02-07 14:22:13 · 283 阅读 · 0 评论 -
JVM 三个代,JAVA8 持久代去哪了?
原博出自于:http://blog.csdn.net/jenny8080/article/details/79019538年轻代(Young Generation)、年老代(Old Generation)和持久代(PermanentGeneration)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系 不大。年轻代和年老代的划分是对垃 圾收集影响比较大的。转载 2018-02-07 14:25:56 · 2653 阅读 · 0 评论 -
Java线程的5种状态及切换
Java中的线程的生命周期大体可分为5种状态。1. 新建(NEW):新创建了一个线程对象。2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timesli转载 2018-02-07 14:20:54 · 158 阅读 · 0 评论 -
jdk8版本的Object类的源码 Object类的11个方法
package java.lang; /** * **Class {@code Object} is the root of the class hierarchy. * Every class has {@code Object} as a superclass. All objects, * including arrays, implement the methods of ...原创 2018-02-08 09:02:02 · 589 阅读 · 0 评论