
Java基础
文章平均质量分 68
Java基础
漫天雪_昆仑巅
程序人生
展开
-
java.security.InvalidKeyException: Illegal key size
java.security.InvalidKeyException Illegal key size原创 2022-03-16 15:43:58 · 5516 阅读 · 0 评论 -
RSA加密、解密、签名、验签的原理及方法
一、RSA加密简介 RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。 二、RSA加密、签名区别 加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单..转载 2021-06-23 20:12:31 · 985 阅读 · 0 评论 -
Java7和Java8内存结构变化
在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化。现在意识到关注公众号“程序新视界”的好处了吧。在这里可以不断的刷新你的知识和认知。JVM内存结构的细化来看一下JVM中的内存结构图。为了更细化的讲解,我们将该图进行进一步的优化调.转载 2021-06-09 11:26:14 · 574 阅读 · 0 评论 -
错误: JMX 连接器服务器通信错误: service:jmx:rmi:// 问题解决
金山毒霸杀毒一次之后,IDEA启动时报错,Connected to the target VM, address: 'javadebug', transport: 'shared memory'错误: JMX 连接器服务器通信错误: service:jmx:rmi://lenovo2017Disconnected from the target VM, address: 'javadebug', transport: 'shared memory'Process finished with ex原创 2021-01-29 18:08:20 · 4261 阅读 · 0 评论 -
Java值传递和引用传递详细说明
本文旨在用最通俗的语言讲述最枯燥的基本知识学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有;这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍、对论坛博客的说法,做一次考证,以得出信得过的答案。其实,对于值传递和引用传递的语法和运用,百度一下,就能出来可观的解释和例子数目,或许你看一下例子好像就懂,但是当你参加面转载 2020-07-14 15:53:17 · 8858 阅读 · 8 评论 -
JVM GC收集器说明
如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。下图展示了7种作用于不同分代的收集器,其中用于回收新生代的收集器包括Serial、PraNew、Parallel Scavenge,回收老年代的收集器包括Serial Old、Parallel Old、CMS,还有用于回收整个Java堆的G1收集器。不同收集器之间的连线表示它们可以搭配使用。Serial收集器(复制算法): 新生代单线程收集器,标记和清理都是单线程,优点是简单高效;ParNew收集器 (复制算法): 新生代收并行原创 2020-06-08 16:32:37 · 5265 阅读 · 0 评论 -
单点登录请求流程
根据前一篇单点登录流程:https://blog.youkuaiyun.com/vtopqx/article/details/104833853下面是单点登录具体参数请求实现流程:登录:1、访问系统A:http://www.system.a.com2、获取用户信息:post http://www.system.a.com/api/activity/center/getCurrentUser3、退出登录:post http://www.system.a.com/api/loginOut4、访问验证中原创 2020-06-08 11:55:19 · 5556 阅读 · 0 评论 -
Java IO流划分
1、Java IO 按操作方式分类结构图:2、Java IO 按操作对象分类结构图:原创 2020-06-04 15:42:04 · 5307 阅读 · 0 评论 -
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException:错误
在java查询的时候报错:org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [userId] during auto-discovery of a native-sql query at org.hibernate.loader.custom.CustomLoader.validateAliases(CustomLoader.java:508)...原创 2020-05-20 10:20:30 · 6354 阅读 · 0 评论 -
单点登录说明
什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分1、登录 相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户...转载 2020-03-13 09:20:02 · 9989 阅读 · 2 评论 -
关于程序性能优化的方向
程序性能调优------------------------------------------------------------1、性能调优层次a.设计调优;b.代码调优;c.jvm调优(如:java);d.数据库调优;e.操作系统调优;2、常用优化组件和方法a.缓冲;b.缓存;c.对象复用-"池";d.并行替代串行;e.负载均衡;f.时间换空间,空间换时间(如:cpu,磁盘等处理转换);原创 2017-11-06 16:41:21 · 24734 阅读 · 0 评论 -
Access restriction: The type is not accessible due to restriction on required library问题处理
在做Java时,遇到了个小问题,在Import 包资源时出现: Access restriction: The type XXX is not accessible due to restriction on required library 错误!如下图:经过查证 原来是:JDK下如rt.jar包中某些资源默认是不让用的。这是其Access规则,在网上看到原创 2012-12-16 14:16:05 · 1778 阅读 · 0 评论 -
JVM结构说明
1.JVM内存模型简介堆——堆是所有线程共享的,主要用来存储对象。其中,堆可分为:年轻代和老年代两块区域。使用NewRatio参数来设定比例。对于年轻代,一个Eden区和两个Suvivor区,使用参数SuvivorRatio来设定大小;Java虚拟机栈/本地方法栈——线程私有的,主要存放局部变量表,操作数栈,动态链接和方法出口等;程序计数器——同样是线程私有的,记录当前线程的行号指示器,为线...转载 2020-03-10 15:12:38 · 5173 阅读 · 0 评论 -
事务传播性说明
7种事务的传播特性Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,如果当前线程中已经存在事务, 方法调用会加入此事务, 如果当前没有事务,就新建一个事务,(默认事务传播性是REQUIRED)Propagation.REQUIRES_NEW 无论何时自身都会开启事务,这个事务不依赖于外部事务,它拥有自己的隔离范围,自己的锁,等等。...原创 2020-03-10 14:22:29 · 5335 阅读 · 0 评论 -
java.lang.IllegalStateException: EntityManager is closed问题解决
报错信息: org.springframework.dao.InvalidDataAccessApiUsageException: EntityManager is closed; nested exception is java.lang.IllegalStateException: EntityManager is closed at org.springframework.or...原创 2020-03-10 11:52:52 · 17129 阅读 · 0 评论 -
IntelliJ IDEA常用配置操作文档
IntelliJ IDEA常用配置操作文档,从基础配置到个性化处理及项目部署,一共三十多项相关配置和操作,如:颜色、快捷键、git、maven、tomcat、、、等等,几乎包含了日常所有用到的配置等,为了明确的描述如何配置,里面每个配置都有相关的图片说明!有Eclipse操作基础的话可以快速看懂!下载地址:https://download.youkuaiyun.com/download/vtopqx/...原创 2019-05-31 16:54:22 · 275 阅读 · 0 评论 -
java递归读取parent下所有子节点
Java查询数据库所有数据之后,在程序中递归获取所有parent节点下子节点,如下代码: public static List<Integer> getAllNewsClass(List<Menu> menuList, int pid,List<Integer> childList) { for (Menu mu : menuList) { ...原创 2019-01-10 15:21:56 · 4246 阅读 · 9 评论 -
Eclipse Ant编译打包
在Eclipse中使用Ant编译打包,1、Eclipse安装Ant插件,一般高一点版本的Eclipse基本上都自带有ant了,2、配置Ant打包,右键项目>属性>BuildersA、在Buildfile中点击Browse Wordspace选择项目中的ant配置文件build.xmlB、在Base Directory中点击Browse Wordspace选择项目的根...原创 2018-11-24 17:35:01 · 2298 阅读 · 0 评论 -
druid密码加密
使用数据库的时候用到druid,密码用非明文的方式配置,即:在项目工程中使用加密的密码来连接数据库,而非明文,这样即使密码泄漏,也是加密后的密码串。该密码串需要使用druid来生成,用到 druid-1.1.3.jar ,或者其他版本的。以下是生成加密密码的命令,DOS下生成密钥:java -cp druid-1.1.3.jar com.alibaba.druid.filter.c...原创 2018-09-28 13:48:09 · 3226 阅读 · 0 评论 -
Java compiler level does not match the version of the installed Java project facet问题解决
Eclipse出现Java compiler level does not match the version of the installed Java project facet错误提示,原因:Java Compiler选择的版本和'Project Facets'中指定的java版本不一致引起的。修改为一致即可,'Project Facets'版本的修改方式的有多种,1、可以直接修改相应配置文...原创 2018-06-28 17:26:49 · 1050 阅读 · 1 评论 -
Java8新特性—日期时间操作示例
代码示例:import java.time.DayOfWeek;import java.time.Duration;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAdjust...原创 2018-05-14 21:18:30 · 372 阅读 · 0 评论 -
Java8新特性—并行流示例
// 并行流计算:(如:累计100亿数据总和) long startTime = System.currentTimeMillis(); LongStream.rangeClosed(0, 10000000000L).parallel().reduce(0, Long::sum); System.out.println("time:" + (System.currentTimeMill...原创 2018-05-14 21:15:00 · 755 阅读 · 1 评论 -
Java8新特性—Stream流示例
Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的...原创 2018-05-14 21:11:33 · 873 阅读 · 0 评论 -
Java8新特性—Lambda表达式(方法调用)示例
Lambda表达式中关于方法调用方式,常用有以下几种:一、通过:方法调用:1.对象::实例方法名2.类名::静态方法名3.类名::实例方法名二、通过:构造器引用:类名:newor数组类型:new具体示例参考以下示例代码:import java.util.ArrayList;import java.util.Comparator;import java.util.List;import jav...原创 2018-04-25 16:34:55 · 2618 阅读 · 1 评论 -
Java8新特性—Lambda表达式(系统内置接口)示例
说明:在java8中使用Lambda表达式时候,java已经内置了四大核心函数式接口,分别是:1.消费型接口2.供给型接口3.函数型接口4.断言型接口因此一些常用/简单的接口,用户可以不用自定义了,直接用系统提供的函数接口即可,具体的内部方法可以查看jdk源码,很简单的,以下是这几种接口的相关Lambda实现示例代码:String name = "张三";// 1)消费型接口Consumer&...原创 2018-04-25 14:51:59 · 399 阅读 · 0 评论 -
The parent project must have a packaging type of POM
在给java maven项目创建module的时候出现错误提示:The parent project must have a packaging type of POM将pom.xml 中的 jar 改成 pom即可原创 2017-11-16 09:35:31 · 664 阅读 · 0 评论 -
SVN图标设置找回
平常SVN导出到磁盘后,会有个图标表示这个是SVN资源,有时候SVN图标会消失掉,经过查询是杀毒软件引起的,比如360安全卫士,平常在清理垃圾的时候有个选项是回收SVN图片图标的,因此导致SVN图标莫名其妙消失掉。没有SVN图标 就不好和普通文件目录做区分了。恢复方式:选svn=>settings=>icon Overlays根据以上图片顺序确定后,再到SVN目录下 F5刷新一下,这时SVN图标又原创 2017-11-01 10:41:27 · 589 阅读 · 0 评论 -
Attach Source源码设置jdk
ps:这个不是技术文,不过公司还是许多实习的同学不知道怎么设置,所以发个记录共享一下:关于工具Eclipse Attach Source 跳转源码设置:源码设置(根据图片顺序进行设置)选择External File之后,选择相应的jar或者zip如:jdk源码则选择jdk目录下的src.zip完成确认之后,可以看到相应的源码除了以上的方法去设置之外,还可以直接给jar进行设置,右键你需要atta原创 2017-10-31 16:37:47 · 2529 阅读 · 2 评论 -
JMX监控 Tomcat JBoss WebLogic WebSphere配置
说明: 在使用JMX监控服务容器环境数据的时候需要用到各个参数查询名称,以下列出了各个容器下的监控代码以及查询参数名配置:Java实现例子:import javax.management.MBeanServer;try{ //如tomcat下获取threadPool信息 String sQueryName = "Catalina:type=ThreadPool,*"; MBeanS原创 2017-09-28 09:48:22 · 1747 阅读 · 1 评论 -
Java System参数获取
备注: 在Java中通过调用System.getProperty("line.separator")获得一些系统的环境变量或者参数,整理如下:原创 2017-06-14 15:09:38 · 783 阅读 · 0 评论 -
java实现数字转大写
说明:将数字金额转大写,如下:public class Test { /** * @param args * add by zxx ,Nov 29, 2008 */ private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌'原创 2017-05-28 23:17:38 · 2028 阅读 · 1 评论 -
ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to com.xxx.xxx
备注:前端时间在做java的时候,需要将前端js的数据传递并填充到JavaBean中,JavaBean中用List进行接收,如下:List list;public ListBeanName> getList()...public ListBeanName> setList(..)...然后在方法调用的时候1、List userList = u原创 2016-06-02 16:10:29 · 3672 阅读 · 1 评论 -
java正则获取字符前后数据
使用Java正则获取指定字符前或者后数据:代码如下:public class RegTest { //字符串截取 public static String regComp(String item) { String num = ""; // 替换中文 String reg = "[\\u4e00-\\u9fa5]+"; //截取λ|入后面数字 String com原创 2015-12-30 19:38:18 · 5046 阅读 · 0 评论 -
org/apache/commons/lang/exception/NestableRuntimeException错误
备注:前段时间在做java,因为是做个小插件,所以运行是依赖之前已有的项目工程的,其中用到了json转换,即将map转json字符串,本来这应该是个很简单的代码,代码完成后,本地IED测试通过,后面升级部署到测试环境上,发现死活测试不通过,老是提示这个错误:org/apache/commons/lang/exception/NestableRuntimeException看到这问题原创 2015-12-01 17:24:13 · 12554 阅读 · 2 评论 -
JSON经典异常:org.json.JSONException: Unterminated string at character
案发情景:手机终端与Java以JSON数据格式方式进行数据交互;出现异常完整信息如下:Unterminated string at character 89 of {"events":[{"otherMsg":"java.lang.RuntimeException: Error receiving broadcast Intent actat org.json.JSONToken原创 2013-05-14 10:36:53 · 75411 阅读 · 1 评论 -
JDBC连接池、监控组件 Druid
Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上转载 2013-03-11 23:10:34 · 1645 阅读 · 0 评论 -
JConsole之Java性能分析器使用
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JD原创 2013-02-16 11:34:16 · 1842 阅读 · 0 评论 -
关于Log4j使用
简介Log4j是Apache的开源项目。通过使用Log4j,我们可以控制日志输入信息到控制台,文件,GUI组件,甚至是套接口服务器,NT的事件记录器,UNIX sysLog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志的生成级别,我们能够更加细致的生成日志的生成过程。这些都可以在通过一个配置文件来灵活配置,而不用修改应用代码。通过Log4j其他语言接口,您可以在C、C++、转载 2013-01-22 09:16:34 · 1150 阅读 · 0 评论 -
java环境变量配置
最近遇到了很多学生不懂得如何配置java 环境变量问题,在此个人做了个简单配置描述:首先需要安装JDK,这个就不多说了;然后检测一下是否配置了环境变量在:运行——》cmd——》java如下所示 表示没有配置环境变量:开始配置:一、选择桌面上我的电脑 这个图标 然后右键——》属性打开如下界面:二、选择高级 ——》环境变量,打开视图如原创 2013-01-08 12:22:33 · 1104 阅读 · 0 评论 -
classpath设置、javac/java执行class问题
回想起还在学校的时候,那时学习Java基本上都是用工具的,比方说Eclipse、MyEclipse等。工具用多了,一旦脱离工具 才发现 成了废材。所以有空之余弄了下JDK下编译和运行。有关JDK与JRE的功能就不多说了。实际如果只运行Java程序的话下载个JRE安装也行了。现在的JDK安装后里面都会有个JRE,因为JDK中一些运行程序也是Java写的,所以也需要一个JRE运行环境。写了一个原创 2012-12-05 22:41:37 · 6283 阅读 · 0 评论