Java
Java相关开发知识
tony_jx
软件从业者
展开
-
大数加法越界处理
加法越界处理原创 2022-12-27 09:03:19 · 389 阅读 · 0 评论 -
Java Optional使用
检查数据是否为空,并抛出指定的异常import java.util.Optional;public class Option1 { public static void main(String[] args) throws Exception { User2 user2 = null; Optional.ofNullable(user2).orElseThrow(()-> new RuntimeException("aaaaa")); }}class User2{原创 2022-04-15 20:37:57 · 650 阅读 · 0 评论 -
Java Future多线程
Future的get()方法是阻塞的, 需要优化才可以实现异步多线程, 示例如下所示.import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;public class TestFuture { private static final int THREAD_SIZE = 10; private static final int USER_NUM = 55; public static原创 2022-04-06 19:59:38 · 1532 阅读 · 0 评论 -
netty解析字符串转16进制问题
netty和许多终端设备通信时, netty使用字符串传递数据, 但有时需要按照16进制来解析数据内容,这种情况极容易出现错误, 因为Java中字符串是以"UTF-8"来解析的, 但对于但字符格式字符需要按照ISO_8859_1来解析才可以获取到正确的结果.程序示例public static void main(String[] args) { String msg = "010203F1F2F3"; String s1 = new String(DataUtil.hexStrTo原创 2022-03-16 11:48:16 · 2306 阅读 · 1 评论 -
Java使用CyclicBarrier
public class TestUtil { private static final int USE_NUM = 5; private CyclicBarrier barrier = new CyclicBarrier(USE_NUM, new Runnable() { @Override public void run() { System.out.println("整齐划一"); try { Thread.sleep(100); } catch (Inte.原创 2022-03-09 12:26:27 · 226 阅读 · 0 评论 -
Java自定义阻塞队列的丢弃策略
public class TestUtil { public static void main(String[] args) { //创建自定义长度的阻塞队列 ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<>(5); //生产者1 Thread producer = new Thread(() -> { try { for (int i = 0; i < 10; i.原创 2022-03-09 11:34:02 · 734 阅读 · 0 评论 -
postman为什么不跨域
跨域是指当一个资源从与该资源本身所在的服务器不同的域或端口不同的域或不同的端口请求一个资源时,资源会发起一个跨域 HTTP 请求。正常的跨域情况,是你访问了一个A网站,然后这个网站返回的资源里面,请求了B网站/端口的资源,于是就跨域了。所以,跨域这个情况只会出现在浏览器页面里,因为实际上是浏览器由于安全原因限制了这些请求的访问。在postman里面,实际上每发出一个请求,都是在独立请求一个资源,而不是在一个网站返回的页面里,再去请求另外一个网站/端口的资源。自然也就不会造成跨域了。...原创 2022-03-05 14:44:45 · 2819 阅读 · 0 评论 -
log4j:WARN No appenders could be found for logger
使用springboot开发项目时,使用其它依赖库,依赖的子部分有可能会发生冲突,如springboot整合dubbo时,会发生log4j重复加载的问题,可以查看那些依赖使用了log4j,增加sxclude即可。如下所示。<exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> &原创 2021-12-28 12:45:13 · 1027 阅读 · 0 评论 -
Springboot设置日志输出格式
简易方式在yml/properties文件中进行配置,如下图。专用配置文件logback-spring.xml:仅对spring项目起作用 logback.xml:对所有的项目都起作用原创 2021-12-25 00:07:43 · 559 阅读 · 0 评论 -
Springboot配置全局异常
全局异常@RestControllerAdvicepublic class ExceptionController { private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionController.class); @ExceptionHandler(Exception.class) public ServiceResult exceptionHandler(Exception e) {原创 2021-12-19 17:15:25 · 561 阅读 · 0 评论 -
Spring中事务的传播特性和@Transactional注解
Spring中事务的传播特性require 默认的传播策略 当前事务默认加入已存在的事务中。 support 支持。 如果已有事务,则加入。 如果没有存在的事务,则作为没有事务处理。 MANDATORY 强制。 当前事务方法只能在外层是事务中执行,否则报错。 NEW REQUIRES 新的事务。当前事务不加入已存在的事务,而是作为新的事务执行。如果回滚且外层调用时加了try catch,则外层事务不受影响。 NOT SUPPORT 不支持。 当前方法脱离外层事务,单独执行,如果失败不会回滚。如果原创 2021-12-12 13:55:52 · 334 阅读 · 0 评论 -
Java 继承vs.多态
主要特点这两者都是建立在继承的基础上的。 继承是子类使用父类的方法,减少重复的代码。 多态是父类使用子类的方法,便于系统扩展。继承多态原创 2021-12-07 13:52:19 · 756 阅读 · 0 评论 -
C++继承 vs. java继承特性比较
C++继承构造和析构顺序构造函数:先调用父类的构造函数,再调用成员变量的构造函数,最后调用自己的构造函数。 析构函数:先调用自己的析构函数,再调用成员变量的析构函数,最后调用父类的析构函数。类型兼容原则子类对象可以当做父类对象来使用。 子类对象可以直接赋值给父类对象。 子类对象可以直接初始化父类对象。 父类指针可以直接指向子类对象。 父类引用可以直接引用子类对象。 有个形象的说法叫“切片”或者“切割”,寓意把派生类中父类那部分切来赋值过去。 如果父类的成员和子类的成员属性名称相同原创 2021-12-06 14:08:47 · 732 阅读 · 0 评论 -
java多线程依次输出数据
public class TestThread { private final static Object obA = new Object(); public static void main(String[] args) { // thread 1 Thread t1 = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 10; i++) { Sy.原创 2021-09-01 09:46:03 · 402 阅读 · 0 评论 -
MCV模型流程图整理
原创 2021-07-07 09:57:33 · 463 阅读 · 0 评论 -
java外观模式-Facade
类图外观类代码public class ShapeMaker { private Shape circle; private Shape rectangle; private Shape square; public ShapeMaker() { circle = new Circle(); rectangle = new Rectangle(); square = new Square(); } public voi原创 2021-06-27 17:28:40 · 75 阅读 · 0 评论 -
Java Gui常用架构设计
原创 2021-06-20 17:02:39 · 787 阅读 · 0 评论 -
Java BufferedImage
总体图示读取像素方法原创 2021-06-20 15:58:46 · 214 阅读 · 0 评论 -
Java GUI-Graphics
说明java提供了Awt和Swing两套GUI组件,其中Swing大多数使用java写的,Swing组件到大多数类带有前缀字母J。Graphics原创 2021-06-20 13:56:01 · 197 阅读 · 0 评论 -
java代理(静态/动态)
相关链接:静态代理图原创 2021-05-30 13:18:22 · 68 阅读 · 0 评论 -
java中PO,VO,BO使用
总结如图原创 2021-05-29 13:58:15 · 1113 阅读 · 0 评论 -
BeanUtils、BeanCopier、Dozer和Orika对比
对比分析程序实例Spring BeanUtilsApache BeanUtilsBeanCopierdozerorika原创 2021-05-29 13:39:50 · 334 阅读 · 0 评论 -
java异常处理
java异常类的类图说明Error: 编译错误或系统错误. 系统错误不需要我们程序员来关心. 包含内存溢出. RunTimeException: 运行时异常,这是实际代码中的bug,需要程序员debug. 非RuntimeException: 程序员必须解决才可以通过编译. try-catch-finally throw/throws到上层 private static void fun2() throws IOException{ throw new IOExcep原创 2021-04-29 21:05:12 · 55 阅读 · 0 评论 -
Android okhttp使用
Android okhttp使用说明okhttp是高效的http客户端. 示例程序可以直接查看官网.同步get请求异步get同步post请求异步postokhttp-utils具体使用中,可以使用工具类okhttp-utilsokhttp-utils post请求okhttp-utils下载大文件支持http请求...原创 2021-04-11 22:50:40 · 93 阅读 · 0 评论 -
java httpclient使用
java httpclient使用概述支持get方式请求. 支持post form和post json方式请求. 设置请求头Content-Type格式. 被拦截:请求头添加User-Agent和Referer. 使用ip代理(免费和付费的). 使用连接池详细源码示例待补充链接:https://blog.csdn.net/justry_deng/article/details/81042379...原创 2021-04-11 14:29:55 · 157 阅读 · 0 评论 -
推荐一个快速阅读java源码的网站
推荐一个快速阅读java源码的网站:http://www.coderead.cn/网站目前处于内测阶段,加微信号,申请内测.以地图方式查看源码,如下图.原创 2021-04-11 14:12:22 · 172 阅读 · 0 评论 -
idea快速输入方式说明
idea快速输入方式说明//for循环: forifor (int i = 0; i < 3; i++) { System.out.println(i);}//list遍历: list.forArrayList<String> strings = new ArrayList<>();for (String string : strings) { System.out.println(string);}//定义变量//.var .new原创 2021-04-11 14:06:07 · 856 阅读 · 0 评论 -
groovy常用语法
groovy常用语法说明:Gradle构建使用groovy语言打开编辑窗口在idea中,点击tools -> groovy 在groovy窗口中编写程序输出//输出内容println "hello groovy";//groovy可以去掉()和;println "hello groovy"定义变量//使用def定义变量def i = 100;def s = "hello";//定义数组,添...原创 2021-03-27 12:17:47 · 208 阅读 · 0 评论 -
java Gradle安装和设置本地仓库
Gradle安装下载地址:https://gradle.org/ 配置环境变量 添加GRADLE_HOME 设置path: %GRADLE_HOME%/bin gradle -v, 出现如下界面,表示安装成功.Gradle配置本地仓库windows在环境中设置,就会自动扫描到该路径作为仓库.GRADLE_USER_HOME="path/repository"配置本地仓库后,maven项目和gradle项目就可以使用一个仓库地址,避免重复下载....原创 2021-03-27 11:44:19 · 413 阅读 · 0 评论 -
java枚举用法
基础知识一个java文件中只能有一个public class。 一个java文件可以定义多个同级class,但只能有一个是public,可以支持外部访问。 枚举建议定义在类中。 枚举也可以作为枚举类。枚举建议定义在类中Constant.javapublic class Constant { public enum Day{ ONE, TWO, THREE, Four }}ConMain.javapublic class ConMain { pu原创 2021-02-26 19:39:57 · 85 阅读 · 0 评论 -
从MVC到MVVM
从MVC到MVVM是从无到有,从有到优的一个过程。Web1.0时代使用单一语言开发,如java(jsp),php,ASP.NET等。这种架构的优点是简单快捷,缺点是难以维护。MVC开发模式,如SpringMVC框架。这种架构优点分层设计,职责清晰,前后端有一定的分离。缺点是前端开发效率不高,前后端职责不清晰。Web2.0时代ajax的出现jQuery是该时期最经典的框架。使得页面部分刷新,减少了服务端的负载和流量消耗。前后端分离MVC(即后端使用MVC框架,前端也原创 2021-02-18 10:33:20 · 304 阅读 · 0 评论 -
HTTP中使用GET还是POST?
GET 还是 POST?与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:无需使用缓存文件(会更新服务器上的文件或数据库)。 向服务器发送大量数据(POST 没有数据量限制)。 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠。...原创 2021-02-18 10:05:43 · 433 阅读 · 0 评论 -
easyexcel读写数据
使用easyexcel大大简化了excel的操作,读写数据程序入如下:import com.alibaba.excel.EasyExcel;import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import com.alibaba.excel.support.ExcelTypeEnum;import java.util.LinkedList;原创 2021-02-09 13:55:59 · 2506 阅读 · 0 评论 -
easyexcel详解+读取文件
easyexcel是一个读写excel的开源库(阿里出品)。使用流程创建ExcelBuilder对象。 设置Excel格式。 添加监听器(按行读取)。 创建读取器。 读取数据。读取文件实例import com.alibaba.excel.EasyExcel;import com.alibaba.excel.ExcelReader;import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.e原创 2021-02-09 10:29:17 · 5292 阅读 · 0 评论 -
java设计模式-建造者模式
建造者模式类图和工厂模式对比工厂模式可以看做是一个汽车生产工厂。 建造者模式是一个组装工厂。原创 2021-01-25 13:34:27 · 93 阅读 · 0 评论 -
java设计模式-工厂模式
简单工厂模式说明实例化对象不使用new。 将调用者和实现类解耦。工厂方法模式说明:工厂方法避免了对原来代码的修改,但对扩展开放;但类的数量会增加。 严格按照设计模式,使用工厂方法模式。 根据实际场景,简单工厂模式。抽象工厂模式针对对维度产品系列结构类图3种模式对比简单工厂模式 用来生产同一等级结构中的任意产品(对于新增产品,需要修改已有代码)。 工厂方法模式 用来生产同一等级结构中的固定产品(支持任意增加产品)。 抽象工厂模式 围绕超原创 2021-01-25 11:56:21 · 85 阅读 · 0 评论 -
java设计模式总结
java设计模式总结链接1:https://www.cnblogs.com/bopo/p/9223852.html#_label2_3原创 2021-01-22 10:09:12 · 61 阅读 · 0 评论 -
idea开发插件
java开发插件Cerebro是Elasticsearch的可视化界面。 idea继承sonar插件,可以检查代码质量。原创 2020-12-14 12:47:58 · 407 阅读 · 0 评论 -
java求平均值出现越界
java求平均值可能会出现越界,造成错误。java在使用二分法查找数据时,会计算头尾索引数据的平均值,在海量数据的情况下,如果使用错误方式,就造成溢出,使索引无效。错误方式: int index=(a+b)/2; //a,b在足够大时,相加会造成溢出,形成负值,造成错误。 正确方式: int index=a+(b-a)/2; //不会有溢出 ...原创 2020-11-27 09:33:59 · 360 阅读 · 0 评论 -
java main主方法相机
java的启动方法-main的形式:public static void main(String[] argv){}public作用:让外部进行访问。static作用:无需类进行实例化,原创 2020-11-23 11:16:27 · 91 阅读 · 0 评论