随笔分类 - java
java基础相关文章
摘要:@Data public class Order { private String account; private String orderNo; private Long quantity; private BigDecimal amount; private Status status; }
阅读全文
摘要:使用 CompletableFuture 编写代码时,异常处理很重要。 CompletableFuture 提供了三种方法来处理它们:handle()、whenComplete() 和 exceptionly()。 handle() whenComplete() exceptionly() 访问成功
阅读全文
摘要:io socket通过不断新线程的方式,这会导致占用大量资源。因此在jdk1.4时提出新的解决方案:NIO。 java nio的几个核心部分: Channel Buffer Selector Channel:通道,是I/O操作的关系。表示与实体之间的打开连接。实体包含硬件设备、文件、网络连接或一组程
阅读全文
摘要:在上章(java socket套接字编程入门)中,服务端只能处理一次,accept()是一种阻塞状态,因此它只能同时处理一个请求,其它的请求只能排队等待前面的处理完成。 为了支持多任务同时处理的能力,首先不要让主服务运行完成即结束,而是一种死循环的方式,让一直等待接收,其次,处理数据的需要另开线程进
阅读全文
摘要:服务之间的通信,有基于应用层的http,也有基于底层的tcp协议。通信会涉及到数据的发送、接收以及拆组包,信息控制等网络流程。网络分层分为两种:五层、七层。 java socket 套接字编程指的是编写跨多台计算机执行的程序。在这些计算机之间都是通过网络进行连接。 有两种协议用于套接字开发:UDP(
阅读全文
摘要:1、在具体的方法上指定返回编码 @RequestMapping(value = "index", produces = "text/html;charset=utf-8") 2 、WebMvcConfigurer统一配置 @Bean public HttpMessageConverter<Strin
阅读全文
摘要:基于springboot 2.3.4.RELEASE。 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </depend
阅读全文
摘要:JVM生命周期分成五个阶段:加载、连接(验证、准备、解析)、初始化、使用、卸载。 一、类的加载: 最常见,将已存在的字节码文件(class文件)从磁盘中读取加载到内存里面,也可以从网络中读取的class文件加载到内存里面。将其放到运行时数据区的方法区中,然后在内存中创建一个Class对象用来封装类在
阅读全文
摘要:java类加载器分四大类:根加载器、扩展类加载器、系统类加载器以及自定义加载器。 自定义加载器,需要extends ClassLoader 1 public class CustomClassLoader extends ClassLoader{ 2 3 @Override 4 protected
阅读全文
摘要:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html 在JAVA中有8种基本类型和一种特殊字符类型:String。这些类型为了运行更快,更节省内存,使用了常量池的概念。 String声明为final,表示不可继承,所有的属性也
阅读全文
摘要:Java NIO 由三个核心组件构成:Selector (选择器), Channel(通道) , Buffer (缓冲区)。 虽然NIO体系还是有其它组件,比如:Pipe,FileLock等 它们只是与三个组件结合实际使用类。 三者关联关系: 一个线程对应一个selector, 一个selector
阅读全文
摘要:CountDownLatch 是一种同步辅助工具, 它允许一个或多个线程等待 直到其它线程的一组操作完成。JDK 1.5加入 。 给定count可以获取CountDownLatch对象。类似于一种记数器,通过getCount()可获知还有多少线程没有执行完成。调用await()方法表示进入阻塞,直到
阅读全文
摘要:获取返回的所关注的事件SelectionKey集合Set<SelectionKey> selectionKeys = selector.keys(); selectionKeys循环处理完事件后,需要进行对它删除。 清除调用selectionKeys.clear()时 抛出异常: java.lang
阅读全文
摘要:单点登录SSO:是指用户通过一次登录,可以访问任意所有相互信任的应用系统。即一处登录,处处登录。比如阿里系下的淘宝、天猫等,虽然是不同的产品,但归于一个体系下,是可以相互信任的应用系统。 为了方便用户操作,避免到处注册登录。不能因为其中一台应用服务的更新,影响到其它应用服务的登录,必然需要把登录当成
阅读全文
摘要:++/-- 是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数 前缀自增(++a):先进行自增运算,再进行表达式运算; 后缀自增(a++):先进行表达式运算,再进行自增运算。 int x = 5, y=5; int a = 2*++x; int b = 2*
阅读全文
摘要:一个项目能否发布上线,重要的环节就是测试。经过集成测试、性能测试、压力测试等不断循环的测试过后依据测试报告来确定上线。这些由专业的测试人员来完成,因此会导致程序开发者对自身的单元测试的弱化。若在代码中写入那些准备的数据代码片段,会让代码冗余,重用性不高,代码复杂度增加不易阅读,太多繁琐的低效的重复工
阅读全文
摘要:dbutils提供的handler转换不能满足实际业务开发的需求。比如枚举转int,时间类型LocalDateTime,实体对象的属性名与字段未能相对应。 mysql表member结构字段: id、member_name、sex、createTime public class Member { pr
阅读全文
摘要:在单元测试过程中,只涉及到数据库的直接操作来验证业务逻辑是否正确的情况,DBUtils非常适合使用。它结构简单,包小,友好处理掉那些jdbc异常,让你更专注于业务代码,而非底层的操作。官网对它的定义:Commons DbUtils库是一组小的类,旨在简化JDBC的工作。JDBC资源清理代码是普通的、
阅读全文
摘要:Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达
阅读全文

浙公网安备 33010602011771号