- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 js中print()的打印功能 打印出的图片大小或者文字排版有误的解决方法
发现项目中的打印功能打印出的页面有问题,图片过大或者过小,文字排序排版有问题,一般是因为样式没有加载。xxx.css指这个页面用到的样式文件。在页面中加入以下代码即可。
2023-10-29 16:23:50 919
原创 记录jsp中引用js的bug
还有一个可能是jsp嵌套着好几层jsp,然后父层jsp和子层jsp都引用相同的js文件,也有概率出现这个bug。jsp中如果出现点击一次但是连着触发了好几次js代码情况的话,可能是这个原因导致的。这样的话就不会出现点击一次连着触发好几次js代码的bug了。
2023-05-21 10:00:22 209
原创 java面试-GC垃圾回收机制
从空间的角度讲,标记清除后会产生大量不连续的内存碎片, 内存碎片太多可能会导致以后程序运行过程中在需要分配较大对象时,无法找到足够的连续内存而不得不提前触发一次垃圾收集动作。这种算法没什么特别的,无非是上面内容的结合罢了,根据对象的生命周期的不同将内存划分为几块,然后根据各块的特点采用最适当的收集算法。:在新生代中,每次GC时都发现有大批对象死去,只有少量存活(新生代中98%的对象都是“朝生夕死”),那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成GC。清除阶段:统一回收所有被标记的对象。
2022-10-08 22:23:51 3526
原创 Java 面试题 - byte[] 和 String如何互相转换
byte[] 转换成 String :new String(bytes,"UTF-8")String 转换成 byte[] :string。*string 指字符串。*bytes 指字节数组。
2022-10-05 22:22:16 1136
原创 ObjectMapper解析Json字符串(数组)
前提: 以下例子中的数据结构是这样的[{"Afield":"aaa","Bfield":"bbb"},{"Afield":"bbb","Bfield":"aaa"}]前端传递过来的数据需要先用Json.stringify()来把数据转换成Json字符串,不然后端在执行时会报错。xxx是指前端传递过来的数据JSON.stringify(xxxxx)后端代码:ObjectMapper objectMapper = new ObjectMapper();JsonNode jsonN
2022-04-09 19:54:50 4255 1
原创 navigator.geolocation.getCurrentPosition在谷歌浏览器不执行的问题
在React 中使用navigator.geolocation.getCurrentPosition去获取定位信息时// 获取地理位置信息navigator.geolocation.getCurrentPosition(position => { console.log('当前位置信息:', position)})发现在谷歌浏览器中是不执行的,原因是在谷歌浏览器里navigator.geolocation的使用,只能使用https协议,普通的http协议是无法执行的。解决..
2022-02-21 23:15:06 9181 8
转载 java常见面试题(附带答案)
这个是照搬这篇博客的内容,顺便附上面试题的答案,方便自己看Java 最常见的 200+ 面试题:面试必备_Java中文社群-CSDN博客_java面试题一、Java 基础1.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了..
2022-02-07 23:02:48 2325
原创 log4j1 介绍与使用方法(包含多种日志输出方式)
Log4j(Log for java)是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件等等。可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。最新版本:log4j 1.2.17 (2015 年 8 月 5 日,日志服务项目管理委员会宣布 Log4j 1.x 已结束,之后版本不再更新)下载链接:Apache log4j 1.2 - Download Apache log4j 1.2https://logging.apa..
2021-12-26 14:27:41 1645
原创 <input> 实现输入框只能输入数字 且 限制输入的位数
偶尔会用到,记录一下,条件为输入框只能输入数字且最多只能输入20个数字1.将type设置为number2.加上 oninput="if(value.length>20) value=value.slice(0,20)注:想控制位数修改红色的数字即可。oninput="if(value.length>20) value=value.slice(0,20)<input id="xxx" name="xxx" type="number" oninput="if(value...
2021-11-07 21:55:44 5217
原创 Redis 命令界面获取中文变成16进制&输入中文变成乱码问题
先用下面命令进入redis操作界面redis-cli.exe -h 127.0.0.1 -p 6379然后命名和赋值,set code "中文"再获取值get code实际结果:命令行输入的中文变成了乱码,获取的值也变成了16进制的形式在网上看到一个方法,在连接redis时加上 --rawredis-cli.exe -h 127.0.0.1 -p 6379 --raw重复刚刚的操作该方法解决了获取值的问题,但是输入到命令行的中文还是乱码。.
2021-08-25 20:44:41 3422 4
原创 java.security.NoSuchProviderException: no such provider: BC
前提:使用了 bcprov-jdk15on-147.jar 和 WAS8.5 (Websphere Application Server)在网上看了一些解决方法
2021-08-15 09:58:25 5586
原创 JS中的array.sort(() => Math.random() -0.5) 在IE浏览器不兼容解决方法
为了把数组KeyMap的顺序打乱,于是在js代码中使用array.sort(() => Math.random() -0.5) 的方法把数组进行乱序处理。在测试过程中发现IE11浏览器不兼容该方法,具体原因还没找到(后期找到会补上)。谷歌浏览器是兼容的。function shuffle(array){ array.sort(() => Math.random() - 0.5);}var keyMap = ['0','1','2','3','4','5','6','7.
2021-07-10 18:24:54 860
转载 Sql Server 数据库死锁介绍和解决方法
SQLServer数据库死锁原因与解决办法SQL Server数据库死锁,通俗的讲就是两个或多个trans,同时请求对方正在请求的某个实际应用对象,而导致双方互相等待。简单的例子如下:sql server死锁表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B。 另一个用户B 访问表B(锁住了表B),然后企图访问表A, 这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了,同样用户B要等用户A释放表A才能继..
2021-05-17 22:39:59 18836
原创 如何调试JavaScript代码
1.通过alert() 来查看程序中的变量,由此也可以推断出程序跑到哪里就报错。用法:alert("1"); //弹出窗口显示1var a = "2";alert("a="+a); //弹出窗口显示a=22.添加debugger来调试javaScript (比较推荐这个,实用方便,alert()添加起来比较繁杂,有时候添加多几个,后面还得删除多几个)用法:只需要在你想要调试的js代码上面添加一个debugger;即可...debugger;..j...
2021-04-26 23:02:49 2202
原创 java基础面试题(持续更新ing)
application,session和cookie的区别方法 信息量大小 保存时间 应用范围 保存位置 Application 任意大小 整个应用程序的生命期 所有用户 服务器端 Session 小量,简单的数据 用户活动时间+一段延迟时间 (一般为20分钟) 单个用户 服务器端 Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端 appl..
2021-04-19 22:44:04 165
原创 通过浏览器中F12来查看form表单的提交
挺实用的一个定位bug技巧这里用谷歌浏览器(Chrome)来举一个例子1.打开F12,打开百度选中www.baidu.com ,再选Headers,就可以看到(1)General:Request URL:请求的URL连接Request Method: 使用的是Get请求的方法Status Code: 状态码,200一般是指成功Remote Address: 远程地址Referrer Policy:一般指服务端请求来源(2)Response Header..
2021-02-24 23:06:09 23779
原创 CSRF简单介绍与解决方法
CSRF (Cross-site request forgery) 跨站请求伪造知识点: 目前绝大多数网站采用的还是 session 会话任务的方式。session 机制简单的来说就是服务端使用一个键值对记录登录信息,同时在 cookie 中将 session id(即刚才说的键)存储到 cookie 中。 另外我们又知道浏览器中 HTTP(s) 请求是会自动帮我们把 cookie 带上传给服务端的。这样在每次请求的时候通过 cookie 获取 session...
2021-01-24 19:26:51 1536
原创 java中的 SecureRandom 简单用法(生成随机数)
1.生成5位0~9的随机数SecureRandom random = new SecureRandom();String returnValue = "";int randomInt = 0;int range = 9;for(int i=0; i<5; i++ ){ randomInt = random.nextInt(range+1); returnValue = returnValue + randomInt;}System.out.println(retur
2021-01-06 21:54:18 34650 2
原创 代码更新后没生效的解决方法
有时候把更改后或者新增的一些jsp、.class文件、js文件...部署好后重启服务器发现没有生效。解决方法:1.关闭服务器2.把服务器底下生成的项目缓存文件删除(这里用tomcat做例子)找到tomcat/work/test (test是指项目的名称(域名)),直接删除掉。然后重启服务器3.清除浏览器缓存(这里用IE做例子)然后重启浏览器即可。*如果这样还不行,请仔细检查更新的代码。...
2020-12-07 22:18:39 1789
原创 java中的LocalDate 和LocalDateTime 基础用法
最近经常会用到时间类去比较或者取值,然后发现Date实在是太难用了,转换来转换去。在网上搜索时发现了两个比较好的时间类,记录一下。先来看看LocaldateLocalDate ldate = LocalDate.now();System.out.println("当前时间=" + ldate);System.out.println("当前日期(数字)=" + ldate.getDayOfMonth());System.out.println("当前日期(英文)=:" + ldate.g.
2020-12-07 21:59:27 5242
原创 Java 求两个时间点之间有多少个30分钟
如果传进来的数据类型是Date时,用getTime()相减除于1800000即可。long a = (date2.getTime()-date1.getTime())/(30*60*1000);System.out.println(a);说明:Date.getTime() :返回的是一个long类型的毫秒数(是指1970年01月1日0点零分以来的毫秒数)。1800000 :是指30分钟转换成的毫秒。如果传进来的是字符串类型时,采用以下转换再计算SimpleDateForm.
2020-11-25 20:50:59 678
原创 Java 中continue基础用法
首先先看以下代码int count=0;for(int i=0;i<5;i++){ count++;}System.out.println("count="+count);在for循环中加上continue后int count=0;for(int i=0;i<5;i++){ if(i==2) continue; count++;}System.out.println("count="+count);可以看到count变为了4,说
2020-11-10 22:38:18 14011 2
原创 java中的字符串拼接方法速度对比
java中最简单的字符串拼接方式就是 "+" 号,但是其效率在数据量大时效率并不是很友好。数据量大时,Stringbuilder中的append()效率就会凸显出来。[1] 数据量小 两个方法并没有什么区别"+"号拼接:long starttime = System.currentTimeMillis();String result = "";for(int i=0; i<5000;i++){ result+="abcde12345abcde12345ab...
2020-09-22 22:29:39 727 3
原创 java中的Hashtable概念和基础用法
Hashtable[1]参考资料:JDK1.8 api文档、Hashtable源代码、百度百科[2]概念:Hashtable(哈希表) 也可以叫做散列表,是根据关键码值(Key value)而直接进行访问的数据结构,通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。上面这个概念可以通过代码来理解 Hashtable <key , value> 前面是key(代表键),后面是value(代表值)public static void main(Stri...
2020-09-06 09:02:19 3489
原创 从源码的角度分析 Java 中的 Float.isNaN()
Float.isNaN()可以理解为一个判断传入的float类型的值是否是非数字的值(NAN),NAN 是Not a Number的缩写。是数字的话返回flase,不是数字则返回turepublic static void main(String[] args) { boolean a = Float.isNaN(0.75f); boolean b = Float.isNaN(0.0f/0.0f); System.out.println(a);...
2020-09-05 21:21:44 1105
原创 Mysql中创建存储过程(入门教程1)
数据库:Mysql数据库图形化管理工具:Navicat Premium 15步骤[1] 新建存储过程填入存储过程的名字,点击下一步这里可以填入参数模式、名称、类型(这里先不做填入),直接点击完成。存储过程建立完毕。[2]添加一个简单的select语句,保存。[3]执行查看结果就是一个简单的查询语句,只不过是放在存储过程中来执行。jjjjj[4]上面只是简单介jjjjjj绍怎么创建存储过程,实际上一般不会把单个查询语句放在存储过程当中,.
2020-09-03 14:45:16 529
原创 查看Tomcat的详细版本
有时候想查看使用的tomcat版本,却发现文件夹名字中并没有详细版本号 这时候我们只需要去tomcat9文件夹底下找到catalina.jar,然后解压。打开META-INF中的MANIFEST.MF文件(用txt形式打开)就可以看到详细的tomcat版本...
2020-08-16 20:50:21 918
原创 HashTable中的 [Ljava.util.Hashtable;@xxxxxx
最近在项目中看到了一些值用HashTable来传递/存放数据。Debug时发现有些值是像下面这个图中这样存放的。一开始以为是HashTable中再放了一个HashTable,后来发现并不是,而是放了一个HashTable[]Hashtable arequest=new Hashtable();Hashtable[] btest=new Hashtable[0];arequest.put("name", "zhong");arequest.put("age", "20");arequ
2020-08-13 22:06:27 273
原创 JVM端口号被占用
有时候在启动项目时会弹出JVM的xxxx端口号被占用解决方法:1.打开命令提示符2.输入查看端口指令netstat -aon|findstr "7777"7777是指被占用的端口号3.输入停止指令taskkill /f /pid 6844这时候再去启动tomcat等服务器就不会出现端口被占用了。...
2020-08-05 22:34:55 1029
原创 存储过程入门概念
存储过程概念 存储过程(Stored Procedure) 是一组预先编译好的Transact-SQL语句。将其放在服务器上,由用户通过指定存储过程的名字来执行它。存储过程可以作为一个独立的数据库对象,也可以作为一个单元被用户的应用程序调用。存储过程可以接收和输出参数,返回执行存储过程的状态值,还可以嵌套调用。 Transact-SQL:又称T-SQL,为SQL server数据库特有的语言,Transact-SQL具有sql的主要特点,还具有变量、运算符、函数、流程控制等功能。...
2020-07-27 22:37:33 564
原创 sql 中top、limit、rownum的基础用法
TOP[1] SELECT TOP n FROM tableTOP n: 指定从查询结果集中输出前 n 行,n是介于 0 - 4294967295 之间的整数(只可以在sql server数据库中使用)eg:SELECT TOP 5 FROM table1查询结果:从table1中拿到前5条数据LIMIT[1] SELECT *FROM table LIMIT nLIMIT n: 指定从查询结果集中输出前 n 行。(只可以在Mysql数据库中使用)e...
2020-07-12 18:22:47 1532
原创 IntelliJ IDEA控制台出现中文乱码(tomcat启动)解决方法
只需要修改tomcat底下conf/logging.properties即可将utf-8用#号注释,然后换成GBK#java.util.logging.ConsoleHandler.encoding = UTF-8java.util.logging.ConsoleHandler.encoding = GBK再次启动tomcat,不会出现乱码现象。...
2020-05-31 17:24:45 588 1
原创 RFC 7230 and RFC 3986 各版本tomcat解决方法
项目从原先的jdk1.6+tomcat6 升级为jdk1.8+tomcat9。升级完后在tomcat日志中发现经常会出现RFC 7230 and RFC 3986 这个错误。于是在网上搜集资料,做个总结。首先出现这个问题是原因高版本的tomcat会严格按照对RFC 3986规范进行访问解析。 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4种特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @...
2020-05-28 21:49:23 11876 13
原创 java 中的 ==、equals 和 hashcode(更新中)
在java开发中经常会涉及到字符串比较的问题。比较常见就是 == 和 equals这两个方法都可以用来比较字符串,但是 == 要慎重使用,因为两个相同的字符串用 == 来比较也是会出现 false的现象。用代码来验证这个问题。 String a = "abcd"; String b = "ab"; String c = "cd"; String e = b + c; String f = "abcdef"; .
2020-05-09 00:03:30 203
原创 com.mysql.jdbc.Connection.isValid(I)Z 解决思路
出现这个问题是因为mysql-connection-java-xxx(版本号)-bin.jar版本过低参考版本:Tomcat9,JDK1.8,Mysql5.6 ,这里选择5.1.39版本(亲测可用)1.在mysql网站中寻找版本稍微高一些的jar包(但不要太高,而且推荐用下载量多一点的版本)https://dev.mysql.com/downloads/connect...
2020-04-23 22:33:20 2568
原创 eclipse中切换JDK和JRE版本完整步骤
这里演示的是JDK1.8切换到1.6版本。1.首先Window → Preferences 打开配置窗口,Java → Compiler。JDK版本在这里切换,把1.8改成1.6。2.Java → Installed JREs首先把JRE1.6版本的添加进来找到JRE1.6目录下的bin文件,选择该文件。点击Finish。可以看到JRE6添加成功了。打钩后点击...
2020-04-04 22:57:19 4718
原创 System.out.println 和 out.println 在java和jsp中的区别
首先,在jsp中对比一下两者的区别结果控制台输出:jsp页面输出:结论:在jsp中,System.out.println()的内容是输出在控制台,而out.println()的内容是输出在页面中。再来看看java类中的两者有什么区别。System.out.println("aaaa");out.println("bbbb");可以清晰的看出ou...
2020-03-10 22:31:37 1352
原创 java 中的 for(String a:b)
for(String a:b)a是String类型,有的人可能把b也当做是String类型,实际上是String[],也就是字符串数组。运行一段代码即可很好理解String s="AAAA#bbbbb#CCCCC#DDDDD";String[] b=s.split("#");for(String a:b) { System.out.println(a);}运行这段代码得出...
2020-03-02 22:50:02 9602
原创 栈(顺序栈和链栈)基础知识和简单应用
栈(stack)核心思想:限定仅仅在表尾(栈顶)进行插入和删除操作的线性表。定义:1.允许插入和删除的一端称为栈顶,另一端称为栈底。 2.后进先出(Last In First Out) 3.不含任何元素时称为空栈 4.栈不仅有顺序存储结构(简称顺序栈),还有链式存储结构(简称链栈)。栈的插入:叫做进栈(也叫压...
2020-02-05 22:49:39 2395 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人