
♛ java
空无多有
这个作者很懒,什么都没留下…
展开
-
java中json转复杂对象
java 中json转复杂对象前言解决方式工具包解析方式示例总结注意事项前言先今接口的设计越来越多的使用json格式来传输数据,最大的优点就是不受语言的限制,配合rest风格的接口用起来很是方便.但是在java中为了获取json 数据的方便往往会将拿到的json数据转为对象,这样用起来会更加方便.本篇主要是对一些比较复杂的json字符串数据转为对象,多是些jsonArray 和 json 相互嵌套的复杂处理.解决方式工具包用的com.alibaba.fastjson.JSONObject; 的原创 2020-08-27 13:34:08 · 6156 阅读 · 1 评论 -
JVM整体架构
JVM整体架构一. 谋全大局,架构简图二. 详细介绍1.类加载子系统2.Java堆3.直接内存4. 垃圾回收系统4.Java栈5. 本地方法栈6. PC(Program Counter)寄存器7. 执行引擎一. 谋全大局,架构简图二. 详细介绍1.类加载子系统类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的的内存空间。除了类信息外,方法区中可能还...转载 2019-01-30 17:12:56 · 334 阅读 · 0 评论 -
java虚拟机的探索学习-开篇
java之所以跨平台 , 无非是因为他站在虚拟机上, 所以真正的跨平台是java虚拟机的跨平台。随着开发时间的增长,在解决问题的过程中,真正的问题瓶颈越来越多的指向了JVM, 这引诱着我去进一步揭开这个JVM神秘的面纱。参考 - 《实战java虚拟机》看了前两章, 感觉写的挺不错的,产生了浓厚的兴趣,便决定 好好看看这本书,本目录下记录学习过程中 重要部分的“笔记”。...原创 2019-01-29 16:55:56 · 163 阅读 · 0 评论 -
XSS跨站攻击解决方案
XSS跨站攻击解决方案1. 过滤器2. XssRequestWrappers3. XSSUtil4. web.xml中的filter拦截配置5. url匹配注意:负责维护的一个老项目java web,网站在安扫的时候发现有XSS跨站攻击的漏洞,这里记录一下解决过程以及方案,以便下次留用.总体是添加了一个过滤器,1. 过滤器package com.xxxx.platform.filter;...原创 2019-12-12 16:13:06 · 326 阅读 · 0 评论 -
java实现数组中出现次数超过一半的数字
java实现数组中出现次数超过一半的数字网上看了一个问题说是求一个数组中出现次数超过一半的数字,看的有的实现也挺繁琐的,就没有看下去,想想挺有意思的,然后也比较喜欢算法的一些东西,就自己用java实现了一下,具体如下: @Test public void test(){ Integer[] arr = {1,1,3,2,1}; // 对数组进行排序 ...原创 2019-12-05 17:53:01 · 352 阅读 · 1 评论 -
java中如何确保一个集合不能被修改? - 源码解读详细
java如何确保一个集合不能被修改? - 源码解读1. Collections. unmodifiableCollection(Collection c) 方法1.1 示例1.2 源码解析1.3 综述2. 使用Arrays.asList创建的集合2.1 示例2.2 源码解读2.3 综述总结:看了一些java 相关的题目,其中有个说如何确保一个集合不能被修改?答案中提到了两种实现方式,Colle...原创 2019-11-25 18:02:46 · 8515 阅读 · 4 评论 -
java中浮点数判断是否相等
浮点数判断是否相等前言问题解决前言首先简单提一下== 和equals :== 的作用: 基本类型:比较值是否相等 引用类型:比较内存地址值是否相等equals 的作用: 引用类型:默认情况下,比较内存地址值是否相等。可以按照需求逻辑,重写对象的equals方法。问题这里就有一个容易让人产生误解的地方了.java基本类型:byte,short,char,int,long,f...转载 2019-11-22 11:31:33 · 1453 阅读 · 0 评论 -
java8 Stream流-教程
java8 Stream流 理解与应用1. stream引入1.1 传统集合的多步遍历代码1.2 循环遍历的弊端2. 流式思想概述3. 如何获取流3.1. 根据Collection获取流之前就对java8新曾的stream流有所理解,最近开发项目时碰到了一个业务比较复杂的处理集合的场景,就想到了用stream流来处理。 使用后感慨 stream流是真的6,原来复杂的代码变的很简洁,思路还清晰。 ...转载 2019-11-10 23:31:55 · 1248 阅读 · 3 评论 -
java异常-Exception总结
java异常总结一、概念二、异常体系1.Throwable体系:2.Throwable中的常用方法:三、异常分类:四、 异常的处理1. 抛出异常throw2.Objects 非空判断3. 声明异常throws4. 捕获异常try…catch5. finally代码块finally:五、异常注意事项六、自定义异常1. 为什么需要自定义异常类?2. 什么是自定义异常类:3. 异常类如何定义:4. 自定...转载 2019-05-22 12:17:21 · 421 阅读 · 0 评论 -
反射-概述
反射-概述概述获取Class对象的方式:演示:Class对象的常用功能整理回顾概述反射: 框架设计的灵魂框架: 半成品软件,可以在框架的基础上进行软件开发,简化编码反射: 将类的各个组成部分封装为其他对象,这就是反射机制反射的好处可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。获取Class对象的方式:Class.forName("全类名"...转载 2019-05-26 23:11:45 · 294 阅读 · 0 评论 -
Element type "property" must be followed by...
从svn 上拉下来一个项目配置项目的时候出现以下错误:[Fatal Error] :77:12: Element type "property" must be followed by either attribute specifications, ">" or "/>"可以看到是打开raqsoftConfig.xml 文件用的是idea解决:这个是字符编码的问题 ...原创 2019-05-30 17:51:03 · 5130 阅读 · 0 评论 -
UrlEncode
UrlEncodeHTTP协议来讲, 一个标准的URL是有固定的编码方式的,它只能包含固定的字符集比如你输入一个网址http://www.baidu.com/s?wd=我&cl=3, 在访问这个网址的时候网络上传输的时候,‘我’这字会变成%CE%D2 这种编码网站收到你这个网址的时候,再把%CE%D2 转换成 ‘我’字才能理解你这个网址的意思...转载 2019-06-12 18:33:56 · 4512 阅读 · 0 评论 -
JSONObject的put和append方法的区别
JSONObject的put和append方法的区别putappend如何顺序读取putput 方法添加的是键值对appendappend 方法添加的是key , 每一个key对应的是一个json数组。即,append(key,value) 会把 value 包装成一个数组如何顺序读取JSONobject按照put顺序存储和读取,new的时候加true即可:JSONObject j...转载 2019-06-10 16:15:27 · 16895 阅读 · 2 评论 -
java.lang.NoClassDefFoundError:org/apache/struts2/views/jsp/ui/AbstractUITag
java.lang.NoClassDefFoundError: org/apache/struts2/views/jsp/ui/AbstractUITag简述:解决问题过程:疑问总结:简述:java web 项目老项目部署到新的环境,灾备演练。服务器是weblogic部署过程中果不其然的碰到很多问题,但都解决了,但是上述的异常着实搞了半天,没有头绪,网上相关资料也很少。解决问题过程:...原创 2019-07-10 13:37:14 · 1540 阅读 · 1 评论 -
警告:“explicit type argument xx can be replaced with......”
警告:explicit type argument xx can be replaced with<>开发工具 IDEA开发时有警告信息: explicit type argument xx can be replaced with<>完整的:explicit type argument xxx can be replaced with<>, insp...原创 2019-09-05 16:59:00 · 14279 阅读 · 5 评论 -
Collections工具类-对集合内元素排序
Collections工具类-对集合内元素排序Comparable接口1. 简介2. 示例(自定义对象-list排序)Comparetor 接口总结 Comparable和Comparator两个接口的区别java.utils.Collections 是集合工具类,用来对集合进行操作,比如批量添加元素,打乱顺序,排序等。部分方法如下//往集合中添加一些元素。public static <...原创 2019-09-08 18:06:10 · 1700 阅读 · 0 评论 -
解决:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8
Information:java: javacTask: 源发行版 8 需要目标发行版 1.8在编译一个小测试的时候出现此错误:此问题我第一是去看项目配置的地方,发现我配置的 Sources 和 Dependencies 里边都是jdk 1.8的。根据以上错误显示以及上述配置,我选择的编译器是jdk1.8的,但是在idea里边选择的编译版本是不一致的,所以会导致以上问题,解决问题: ...原创 2019-09-09 00:18:13 · 8696 阅读 · 7 评论 -
log4j配置指定类输出到指定的日志文件
log4j配置指定类输出到指定的日志文件log4j.properties 配置DailyRollingFileAppender类MyDailyRollingFileAppender类示例:在实际业务类中使用日志示例log4j.properties 配置#/app/weblogs/xxgx/xxgx.loglog.path=/app/weblogs/xxgx### direct log m...转载 2019-04-02 13:13:41 · 12909 阅读 · 0 评论 -
java: cannot execute binary file
java: cannot execute binary filelinux安装jdk执行java -version后报错这个问题是jdk的安装位数和 linux操作系统的位数不一致造成的。可以执行以下确认该问题查看linux系统的位数执行: getconf LONG_BIT返回如下:及为64 位的, 如果是32 的就会直接显示32.getconf命令:getconf命令...转载 2019-03-25 11:01:31 · 17126 阅读 · 1 评论 -
sftp连接关闭不了解决
同事的一个问题,帮忙解决的,网上看了一下,一模一样的问题 嘿嘿 记录一下项目中需要用Sftp上传下载文件,通过jsch中的sftp实现。代码上了服务器之后,发觉服务器多了很多进程没有被关闭。连接sftp代码:protected boolean connectToServer() {try {JSch jsch = new JSch();jsch.getSession(userName...转载 2019-03-16 15:59:38 · 13235 阅读 · 0 评论 -
让java web项目错误信息显示
目录 问题描述 错误原因解决办法详细步骤如下:1.在当前访问 发生的错误的页面 添加 result = error时 对应的 页面 如下图:2.在对应的list页面添加 标签(会将错误信息传递过来)3.再次运行,发生错误,跳转到 list.jsp页面 会发现下边有一个debug标志 如下图:4.点击上图 debug标签 会显示错误信息,如下图问题描述...原创 2018-07-29 21:13:29 · 5449 阅读 · 0 评论 -
Quartz精解 2
Quartz使用总结废话的前言以前凭借年轻,凡事都靠脑记。现在工作几年后发现,很多以前看过、用过的东西,再次拿起的时候总觉得记不牢靠。"好记性不如烂笔头"应该是某位上了年纪的大叔的切肤之痛(仅次于上了年纪的难言之瘾)。我觉得这事得怪怪中国的应试教育,中国的考试方式就是要求把脑袋当数据库,以前中学那点知识,确实还能装得下。但现在所需的知识量再一次性装入大脑,就是内存溢出的节奏。另,再相信...转载 2018-08-01 15:40:49 · 150 阅读 · 0 评论 -
Log4j配置文件详解
配置过程:1.导入jar包 eg: log4j-1.2.9.jar2.在根路径下配置log4j.properties,参照xia下面的log4j配置代码3.在需要记录日志的java文件、jsphu或者servlet中添加 例如下面的yi'xi记录日志代码代码扩展: 1. Log4j.jar下载地址:http://www.apache.org/dist/jakarta/l...转载 2018-08-11 00:00:50 · 1438 阅读 · 0 评论 -
spring依赖注入: 注解注入
注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。1.@Autowired是自动注入,自动从spring的上下文找到合适的bean来注入@Autowired(required=true)表示必须找到匹配的Bean,否则将报异...转载 2018-09-18 20:38:30 · 292 阅读 · 0 评论 -
log4j的配置信息介绍
### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.errlog4j.appender.stdout.layout=org.apache.log4j.Patter...原创 2018-10-01 21:44:54 · 433 阅读 · 0 评论 -
java小知识
1. dao : 数据层 DAO(Data Access Object) 是数据访问层 bo为Business Object的缩写,Business Object是业务对象层,表示应用程序领域内“事物”的所有实体类2. ".jar" 文件是可以执行的,执行步骤 以安装一个weblogic 为例 首先下载好一个 weblogic 的jar文...转载 2018-09-20 18:15:51 · 203 阅读 · 0 评论 -
jboss部署
jboss 双击run.bat 后 直接二闪退解决: 打开run.bat 文件将 off 改为 on补充: @echo off 与@echo on前者为关闭回显,后者为打开回显当不想批处理文件中的命令一行一行在DOS中显示出来时(因为全部显示出来的话看起来会变得很杂乱),可以使用@echo off,将其放于程序的最上方就行了。下图处 可以直接设置 jdk 的位置:...原创 2018-11-09 15:23:12 · 463 阅读 · 0 评论 -
项目中jar文件的修改方法
因为这个问题, 着实困扰我好些天。 印象比较 深刻一个项目由于需求改动, 一个applet控件(用于上传pdf文件) 的jar文件改动查找网上说的 比如, 先把jar包反编译, 然后再导入eclipse 最后再导出jar 文件, 这样试了 ,并不那么容易。最后得到了真正的比较简单的解决方案: 1. 首先jd反编译 找到 需要更改的类的路径, 以及内容复制一下。 2. 打开j...原创 2018-11-11 13:51:24 · 2516 阅读 · 0 评论 -
java applet控件制作签名
applet 生成 签名 证书 生成证书:keytool -genkey -alias sso_server -keypass sso_key -keyalg RSA -keysize 1024 -validity 365 -keystore E:\key_store\sso_server.keystore -storepass sso_store参数信息:alias指定生成...转载 2018-11-08 16:09:18 · 412 阅读 · 0 评论 -
java如何判断list集合为空
1、如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 }2、list.isEmpty() 和 list.size()==0 有啥区别呢 答案:没有区别 。isEmpty...转载 2018-07-27 15:51:28 · 57139 阅读 · 4 评论 -
时间Date类型如何比较大小
方法一:调用Date的getTime()方法获取到毫秒数来进行比较String beginTime = &quot;2018-07-28 14:42:32&quot;;String endTime = &quot;2018-07-29 12:26:32&quot;; SimpleDateFormat format = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&转载 2019-01-15 15:26:35 · 18539 阅读 · 0 评论 -
java.lang.ClassNotFoundException:xxx
java.lang.ClassNotFoundException:xxx一般情况是缺包了 然后去看配置如上图 ,看到这里都有包, 也没什么问题啊,Build path 下面source选项配置的是项目编译时需要扫描的文件,其中output folder表明的是.class编译输出的根目录。Web Deployment Assembly是eclipse中的发布路径设置,DeployP...转载 2019-02-18 19:12:33 · 27514 阅读 · 3 评论 -
Druid连接池-数据库密码加密
Druid连接池-数据库密码加密第一步: 执行命令加密明文密码第二步 : 配置数据源第三步: 参数配置文件数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter第一步: 执行命令加密明文密码为路径方便 可将druid-1.0.16.jar 放在jdk的bin目录下。java -cp druid-1.0.16.jar c...转载 2019-02-24 11:34:11 · 2548 阅读 · 0 评论 -
JDBC如何连接mysql8
java JDBC连接mysql8数据库首先下载mysql8的数据库连接驱动:java连接数据库了,这里有两个区别:其中第一个是 以前的 驱动包是 com.mysql.jdbc.Driver 而安装了 mysql 8.0过后要改成 com.mysql.cj.jdbc.Driver , 连接方式也不需要SSL方式了,所以要手动设置为falseClass.forNam...转载 2019-02-19 14:02:16 · 9683 阅读 · 0 评论 -
linux上ftp上传文件失败
ftp上传windows成功,服务器换成linux就失败有个小功能模块做一个ftp上传文件,我在本地搭建了一个ftp服务器是windows的 , 然后上传文件也没有问题,但是今天在切到正式环境的时候文件就上传不上去了,debug发现ftp是连接上, 就是文件传不成功。最后找到原因: 调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,...原创 2019-03-13 21:06:46 · 6795 阅读 · 1 评论 -
Quartz定时器精解
1 Quartz概述1.1 quartz介绍和下载官网:http://www.quartz-scheduler.org/ Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可...原创 2018-07-16 14:33:37 · 491 阅读 · 0 评论