![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA开发
双刃剑客
双刃
展开
-
通过Class.newInstance()和Constructor.newInstance()两种反射方法创建对象的异同
Constructor.newInstance() → Inside java.lang.reflect 包。Class.newInstance()对于捕获或者未捕获的异常均由构造器抛出;Class.newInstance()需要构造器可见(visible);Constructor.newInstance()可以反任何构造器;Constructor.newInstance()可以反私有构造器;Class.newInstance()只能反射无参的构造器;直接类名反射实例化对象。转载 2022-11-23 15:15:57 · 704 阅读 · 0 评论 -
Lamda表达式详解
转:Lamda表达式详解_Ocean..的博客-CSDN博客_lamda转载 2021-12-15 10:25:05 · 104 阅读 · 0 评论 -
关于RxJava最友好的文章(进阶)
前言之前就写过一篇《关于Rxjava最友好的文章》,反响很不错,由于那篇文章的定位就是简单友好,因此尽可能的摒弃复杂的概念,只抓住关键的东西来讲,以保证大家都能看懂。不过那篇文章写完之后,我就觉得应该还得有一篇文章给RxJava做一个深入的讲解才算完美,于是就有了今天的进阶篇。因为一个团队里可能大家都会用RxJava,但是必须要有一个人很懂这个,不然碰到问题可就麻烦了。在前一篇文章中的最后,我们得出结论:RxJava就是在观察者模式的骨架下,通过丰富的操作符和便捷的异步操作来完成对于复杂业务的处转载 2020-10-14 14:05:07 · 157 阅读 · 0 评论 -
关于RxJava最友好的文章
前言RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。异步在这里并不需要做太多的解释,因为在概念和使用上,并没有太多高深的东西。大概就是你脑子里想能到的那些多线程,线程切换这些东西。我会在后面会讲解它的用法。我们先把观察者模式说清楚“按下开关,台灯灯亮”在这个事件中,台灯作为观察者,开关作为被观察者,台灯透过电线来观察开关的状态来并做出相应的处理观察...转载 2020-10-14 11:42:02 · 124 阅读 · 0 评论 -
图解设计模式(十)Strategy 模式
读书笔记 仅供参考策略模式策略模式就是可以整体地替换算法,可以轻松地以不同的算法去解决同一个问题。角色和 UMLStrategy负责决定实现策略(算法)接口(API)ConcreteStrategy负责实现 Strategy 定义的接口(API)Context负责使用 Strategy 角色UML例子例程是一个猜拳的程序,有两种猜拳策略,一是上一局赢了就不变手,输了就随机出,二是根据之前所有的出拳结果统计概率出拳。//出拳手势public clas转载 2020-09-11 18:06:09 · 150 阅读 · 0 评论 -
IDEA 编译时卡在Parsing java,最终out of memory 错误处理
新搭建的IDEA开发环境,如果没调整IDEA 运行JAVA 虚拟机默认配置,编译时 卡在Parsing java... 等待长时间后,最终提示内存溢出通过如下两步处理方法:1、IDEA的配置文件,在IDEA安装目录下的bin文件夹里,用记事本工具编辑 *.vmoptions 文件,根据使用的idea启用的程序,idea64.exe ->idea64.exe.vmoptionsidea.exe ->idea.exe.vmoptions根据电脑配置调整Xm...转载 2020-05-27 23:20:02 · 10121 阅读 · 4 评论 -
[ IJ ] the file size(3.40M) exceeds configured limit(2.56M).Code insight features are not available
一、问题表现:1.某个java类确定存在项目中,却在引用处提示找不到该类2.对应的类文件中提示the file size(3.40M) exceeds configured limit(2.56M).Code insight features are not available3.对应的文件显示为 **.java 与其他文件不同,没有显示该文件是一个Class二、原因:该文件字节过大#-----------------------------------------------------转载 2020-05-27 22:53:56 · 1112 阅读 · 0 评论 -
《Spring》IOC实现原理
作者:Mingqi链接:https://www.zhihu.com/question/23277575/answer/169698662来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据.转载 2020-05-18 11:31:05 · 183 阅读 · 0 评论 -
Web开发模式【Mode I 和Mode II的介绍、应用案例】
开发模式的介绍在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II).首先我们来理清一些概念吧:DAO(Data Access Object):主要对数据的操作,增加、修改、删除等原子性操作。 Web层:界面+控制器,也就是说JSP【界面】+Servlet【控制器】 Service业务层:将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑 控制层:主要使用Servlet进行控制 数据访问层:使用DAO、Hibernate、JDBC技术实现对转载 2020-05-14 14:01:58 · 812 阅读 · 0 评论 -
Java进阶(四)Java反射TypeToken解决泛型运行时类型擦除问题
在开发时,遇到了下面这条语句,不懂,然习之。privateList<MyZhuiHaoDetailModel>listLottery=newArrayList<MyZhuiHaoDetailModel>();Gsongson=newGson();JSONObjectobject=newJSONObject(callbackValue);listLottery=gson.fromJson(object.getString("lists"),...转载 2020-05-10 22:43:10 · 1813 阅读 · 0 评论 -
最强常用开发库总结 - JSON库详解
最强常用开发库总结 - JSON库详解作者:@pdai本文为作者原创,转载请注明出处:https://www.cnblogs.com/pengdai/p/12185594.html内容目录JSON简介 JSON是什么 结构与类型 JSON优秀资源 JSON在线解析工具 JSON类库 性能测试对比 FastJson Fastjson 简介 Fastjson 特性 下载和使用 序列化一个对象成JSON字符串 反序列化一个JSON字符串成Java.转载 2020-05-08 23:05:14 · 195 阅读 · 0 评论 -
com.alibaba.fastjson.JSONObject 如何有序排列
1、由于 com.alibaba.fastjson.JSONObject 默认是由hashMap组成的,所以内容存放的顺序并不是有序的;如果要实现有序的话需要使用LinkedHashMap的方式,在新建Json对象的时候要这样写JSONObject jsob = new JSONObject(new LinkedHashMap());2、有时候Json的顺序并不是我们想要的时候,需要进行下倒叙,这里的思路是可以把json转换为ArrayList然后再顺序反转ArrayList<Da转载 2020-05-08 21:54:53 · 1779 阅读 · 0 评论 -
java序列化机制之protoStuff
之前曾经写了两篇java的序列的机制,一种是默认的java序列化机制,这种方式效率太低。另外一种是谷歌的protobuf,但是这种我们还要写proto文件,并且我们还要使用工具来编译生成java文件,实在太麻烦。但是protostuff却不一样,能够很好的解决上面两者的问题。这篇文章就研究一下如何去使用,并对其进行一个简单的分析。一、认识protostuff其实protostuff也是有局...转载 2020-05-08 10:22:46 · 1064 阅读 · 0 评论 -
Lombok详细教程及idea中lombok插件的安装
一、背景我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那java中有没有一种方式能够避免这种重复的劳动呢?答案是有,我们来看一下下面这张图,右面是一个简单的JavaBean,只定义了两个属性...转载 2020-04-23 17:00:24 · 6253 阅读 · 0 评论 -
JAVA:定时器的三种方法(详细注解)
第一种: 创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果,代码如下:public class Task1 { public static void main(String[] args) { // run in a second // 每一秒钟执行一次 final long timeInterval = 10...转载 2020-04-17 10:34:39 · 425 阅读 · 0 评论 -
mysql-connector-java 插入 utf8mb4 字符失败问题处理分析
更改MySQL数据库的编码为utf8mb4原文:http://blog.csdn.net/woslx/article/details/49685111utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常:java.sql...转载 2020-04-17 09:43:24 · 3299 阅读 · 1 评论 -
Java动态代理实现及原理分析
代理模式给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问什么是动态代理运行时动态生成代理类 private static final Class ProxyClassFactory implements BiFunction<ClassLoader, Class<?>[], Class<?>> { ...转载 2019-12-30 12:05:43 · 190 阅读 · 0 评论 -
onejar-maven-plugin把java类与lib打包为一个可运行jar
转:https://my.oschina.net/noahxiao/blog/782411、问题背景我们有时要开发一个Java Application,就是main来直接运行的那种,虽然有好多工具可以帮助我们打为jar。但会有以下两个问题:第一种是需要lib目录依赖一起来运行。(需要依赖文件,一个jar不可以运行)第二种就是是把其它依赖的jar解开和你的类放转载 2017-03-14 21:02:05 · 1175 阅读 · 0 评论 -
远程调试jar
转:https://blog.csdn.net/ChenXiaoTemp/article/details/50774825如何远程调试一个jar:运行如下命令java -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=y -jar xxx.jar然后在eclipse中选择远程调试设置port 88...转载 2018-10-12 11:26:10 · 183 阅读 · 0 评论 -
JAVA语言在中文情况下String没有采用指定编码造成debug正常,release有些机器正常,有些不正常的问题记录
实际项目中,出现在windows下,通过eclipse启动运行正常,然而export发布的jar运行不正常的情况。通过跟踪分析。发现是由String.getBytes 造成MD5算法结果不一致。未修改前代码段如下:private static String c(String requestParams,int len){ String sign = ""; try { ...原创 2018-10-29 15:34:52 · 287 阅读 · 0 评论 -
JDK1.8 java.io.Serializable接口详解
转:https://www.cnblogs.com/wangg-mail/p/4354709.html什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但是,只有JVM处于运行时,这些对象才存在。但是在现实应用中,可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来(如:被其他JVM)重新读取被保存的对象。Java对象序列化,可以完...转载 2018-11-16 14:22:07 · 1207 阅读 · 0 评论 -
JAVA:IO流 之 节点流与处理流(2)
转:https://blog.csdn.net/jingzi123456789/article/details/72123937转载 2019-02-13 10:39:09 · 177 阅读 · 0 评论 -
Java设计模式--观察者模式
概述 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现(目标发生情况到观察者知道情况,是由目标将情况发送到观察者的)。这个模式说白了就是:被观察者(发布者)生产内容,观察者(订阅者)获取内容。观察者模式在应用上非常广泛。 1.订阅推送,假如我的博客发了一篇新的文章,...转载 2019-02-25 11:11:15 · 169 阅读 · 0 评论 -
Java 大白话讲解设计模式之 -- 建造者(Builder)模式
转:https://www.jianshu.com/p/afe090b2e19c建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常见的例子,想必大家都买过电...转载 2019-02-20 14:20:37 · 464 阅读 · 0 评论 -
p2p技术之tcp内网穿透 java实现版
NAT打洞原理(详细+经典)https://blog.csdn.net/max126313/article/details/19165913内网ip打洞-----p2p实现原理https://blog.csdn.net/eydwyz/article/details/52449537转:https://blog.csdn.net/kiss1987f5/article/de...转载 2019-06-04 14:49:57 · 1165 阅读 · 0 评论 -
openjdk
Windows的openjdk下载地址:https://developers.redhat.com/products/openjdk/downloadLINUX的openjdk下载: http://openjdk.java.net/install/index.html JDK 8:yum install java-1.8.0-openjdk JDK 7:y...转载 2019-07-09 15:13:37 · 161 阅读 · 0 评论 -
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一转载:https://blog.csdn.net/s10461/article/details/53941091转载 2019-07-05 11:48:37 · 155 阅读 · 0 评论 -
Java高新技术第一篇:类加载器详解
首先来了解一下字节码和class文件的区别:我们知道,新建一个java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的bin目录下)指定的目录下的.class文件,类加载需要将.class文件导入到硬盘中,经过一些处理之后变成字节码在加载到内存中。下面来看一下简单的例子:package com.loadc...转载 2019-08-27 10:38:00 · 169 阅读 · 0 评论 -
如何在Eclipse中Debug调试Java jdk源代码
背景有的时候你想debug调试Java的源代码,就想试图在Java源代码中设置断点,在Eclipse中常常会出现Unable to insert breakpoint Absent Line Number Information错误。导致这个错误的原因是Eclipse默认使用了JRE环境,而事实上只有JDK环境才包含有Debug信息。接下来我们介绍如何为你的项目设置JDK环境,从而让你可以调试...转载 2019-08-28 09:57:56 · 845 阅读 · 0 评论 -
ClassLoader.loadClass和Class.forName的区别
为什么要把ClassLoader.loadClass(String name)和Class.forName(String name)进行比较呢,因为他们都能在运行时对任意一个类,都能够知道该类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。在比较它俩之前需先了解一下java类装载的过程java类装载过程分为3步: 1:加载 Jvm把clas...转载 2019-08-28 10:00:39 · 139 阅读 · 0 评论 -
java replaceAll /和\字符
“replaceAll /和\的意思是替换所有的正斜杠为反斜杠。直接通过正则表达式进行替换即可(备注:反斜杠为"\",正斜杠为"/"),代码如下:public class Test { public static void main(String[] args) { String path = "D:/FTP/admin/bird.gif";//文件路径 ...原创 2018-09-19 11:51:13 · 3076 阅读 · 0 评论 -
Eclipse怎么全局搜索替换(整个项目)
我们用Eclipse编程,有时候需要将整个项目的某个字符串替换成其他的。那么我们该怎么操作呢?请接着往下看!工具/原料 电脑 方法/步骤 我们首先打开Eclipse,如下: 我们单击要替换字符串的项目,然后按下键盘上的CTRL键不放,再按下H键,如下: 我们点击搜索文件,如下: 我们输入要搜索和替换的字符,如下: ...转载 2018-08-17 16:44:22 · 7220 阅读 · 2 评论 -
Maven入门指南(一)
转:http://ifeve.com/maven-1/Maven介绍:Maven是一个强大的Java项目构建工具。当然,你也可以使用其它工具来构建项目,但由于Maven是用Java开发的,因此Maven被更多的用于Java项目中。这篇教程的目的是帮助你理解Maven的工作机制。因此教程主要关注Maven的核心概念。一旦你理解了这些核心概念,当你想了解更多的细节时,再取查看M转载 2017-08-15 10:41:34 · 205 阅读 · 0 评论 -
Java输入输出流
转:http://blog.csdn.net/hguisu/article/details/74181611.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数转载 2017-07-25 11:32:32 · 344 阅读 · 0 评论 -
Java反射与joor反射库的使用
java原生反射的使用反射构造对象 //获得指定对象的构造方法,参数值传入与构造方法参数对应的类型 Constructor constructor = peopleClass.getConstructor(String.class); //分为无参和有参,参数传入与构造方法参数对应的值,获得对象引用 People people = (People) constructo...原创 2017-06-11 23:43:33 · 4820 阅读 · 1 评论 -
Maven安装配置(Windows10)
转:http://www.cnblogs.com/wkrbky/p/6350334.html?utm_source=itdadao&utm_medium=referral想要安装 Apache Maven 在Windows 系统上, 需要下载 Maven 的 zip 文件,并将其解压到你想安装的目录,并配置 Windows 环境变量。所需工具 :JDK 1.8Maven转载 2017-06-21 17:07:00 · 496 阅读 · 0 评论 -
JAVA的访问控制符private,default,protected,public
封装是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。封装实际上有两个方面的含义:把该隐藏的隐藏,该暴露的暴露。JAVA提供了4个访问控制级别,JAVA的访问控制级别由小到大:private->default->protected->public详细介绍如下原创 2017-04-27 15:46:37 · 645 阅读 · 0 评论 -
JAVA语言循环结束语句不同于C++之处-break,continue 标签
JAVA语言循环结束语句不同于C++之处-break,continue 标签,若需要转换为C++,可以考虑采用goto语句来实现,代码如下:public class TestHello { public static void main(String[] args){ outer: for(int i = 0; i<5; i++){ System.out.println("原创 2017-04-26 12:06:31 · 601 阅读 · 0 评论 -
JAVA的反射总结
1.Class.forName总结1.1 原始类型采用Class<?> clazz = Class.forName("[I").getComponentType();1.2 类数组情况采用[Lfullclassname;1.3 类情况采用fullclassname 2.Class的关键函数总结2.1.1 Class.getDeclaredFields()类...原创 2017-04-17 21:16:48 · 326 阅读 · 0 评论 -
IDEA怎么打包可运行jar的一个有关问题
转:http://www.myexception.cn/program/1642017.htmlIDEA如何打包可运行jar的一个问题。背景:有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包。并且,如果依赖第三方jar时,又不希望第三方jar也打入最终的可运行jar转载 2017-03-14 20:17:32 · 454 阅读 · 0 评论