
Java基础
文章平均质量分 70
Java的基础学习
Gamble6
Settle down
展开
-
Java常用类型转换
方法将分隔符、前缀和后缀作为参数。此方法将列表转换为具有给定分隔符、前缀和后缀的字符串。字符数组:String[] ids =["aa","bb","cc"];//输出 {aa-bb-cc}(",", ids);//输出 aa,bb,cc。字符列表:List idList。//输出 [aa,bb,cc]以将集合转换为具有给定分隔符的字符串。字符串:String id =原创 2022-12-18 21:42:04 · 1075 阅读 · 0 评论 -
JSON相关
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。易于人阅读和编写,可以在多种语言之间进行数据交换。JSON 比 XML 更小、更快,更易解析。JSON 易于人阅读和编写。C、Python、C++、Java、PHP、Go等编程语言都支持 JSON。JSON是一个序列化的对象或数组。1. JSON对象2. JSON数组整个是一个json数组class1 也是一个json数组二、JSON的用途序列化:Object --> Jso原创 2022-12-05 00:01:12 · 522 阅读 · 0 评论 -
Java的属性拷贝工具类
BeanUtils.copyProperties的使用场景:DO、DTO、VO之间的转换BeanUtils.copyProperties的避坑BeanUtils的替代工具类——Mapstruct原创 2022-11-13 23:56:02 · 2396 阅读 · 0 评论 -
设计模式—1-工厂模式
大家熟知的23种设计模式,可以分为创建型模式、结构型模式和行为型模式三大类。其中,创建型模式是对类的实例化过程进行抽象,从而将对象的创建和使用分离开。主要有简单工厂模式、工厂方法模式和抽象工厂模式3种。原创 2022-10-23 23:32:10 · 596 阅读 · 0 评论 -
Spring常见注解
1、普通字符串:@Value("tttest") 直接将字符串赋值给当前字段2、占位符:@Value("${tttest}") 从环境变量、properties文件找到对应变量值赋给当前字段3、Spring表达式:@Value("#{tttest}") tttest 表示Bean对象、字符串等。4、扩展:注释在注解上, 配置文件变量 testport=8080,直接引用时 @Value("${testport}") :但是多处注释使用该变量,修改变量key时极不方原创 2022-07-03 22:21:08 · 473 阅读 · 0 评论 -
简单工厂模式和策略模式的区别
两种模式的UML图从图上来看,并没有多大的区别,话不多说,从具体的代码入手。先写一个人的接口类,有eat,run,wear 3个方法分别写两个实现类,一个是小明的实现类,一个是小红的实现类简单工厂模式的代码再来看下策略模式的代码策略模式的两种构造方法都可以用,我多写了一种是为了让大家看到和工厂模式的区别和联系然后我们通过测试类运行两种模式 可以看到,两种设计模式的运行结果是一模一样的,那么区别到底在哪呢。从工厂模式的代码中可以看到 工厂模式主要是返回的接口实现类的实例化对象,最转载 2022-06-12 23:58:18 · 138 阅读 · 0 评论 -
Java 类加载机制
输出结果?一、进行类加载 后1、先加载静态属性:加载静态属性b1, b2时,创建对象(执行构造方法前,执行构造块:构造块)-输出2次"构造块"2、再执行静态块,自动调用执行。-输出"静态块"二、再执行main方法: new B 执行构造块 - 输出"构造块"...原创 2022-06-12 23:46:54 · 136 阅读 · 0 评论 -
Java——泛型调用
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。一、泛型带来的好处在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是本身就原创 2022-06-12 23:32:57 · 1107 阅读 · 0 评论 -
Java应用结构规范
一 、分层结构web(前端请求层):通过调用业务层服务,处理前端的请求。biz(业务层) :提供封装好的能力,并通过对能力进行组装、编排,进行业务逻辑处理。dal(数据层):对底层数据源进行增删改查操作。client(外部请求层):定义暴露给其他应用的接口。common(外部公共层):定义暴露给外部的公共类。facade(外观层):通过调用业务层服务,处理外部应用的请求。二 、分层明细web(前端请求层): 包 子包原创 2022-03-16 23:55:04 · 2579 阅读 · 0 评论 -
领域驱动编程
基于领域驱动编程的核心优势在于: 实施面向对象的编程模式,进而实现高内聚、低耦合。 在复杂业务系统的迭代过程中,保证代码结构不会无限制地变得混乱,因此保证系统可持续维护。 领域驱动的代码分层可以使用不同的 Java 项目发布不同的微服务对领域进行隔离,也可以在同一个 Java 项目中,使用不同 module 进行领域隔离。这里我们使用 module 进行领域隔离的实现。但是无论采用何种方式进行领域隔离,领域之间的交互只能使用对方的二方包或者 API 层提供的 HTTP 服务,而不能直转载 2022-03-16 23:36:32 · 293 阅读 · 0 评论 -
Java——工具类
断言 对象、数组、集合 ObjectUtils:获取对象基本信息 StringUtils:字符串处理 ---------字符串判断工具---------------------------// 判断字符串是否为 null,或 ""。注意,包含空白符的字符串为非空boolean isEmpty(Object str)// 判断字符串是否是以指定内容结束。忽略大小写boolean endsWithIgnoreCase(String str, String suff原创 2022-03-06 23:27:10 · 288 阅读 · 0 评论 -
软件&工具推荐
一、OCR工具 —— Bob二、IDEA 插件lombok : 通过注解简化Alibaba Java Coding Guidelines:代码检查工具CodeGlance:代码Tab页 缩略图切换Activate-power-mode :装X利器,敲代码的动感输入三、流程图工具draw.io在线网站:Flowchart Maker & Online Diagram Software...原创 2022-03-06 22:58:30 · 298 阅读 · 0 评论 -
RPC 远程调用
RPC 全称是 Remote Procedure Call ,即远程过程调用,其对应的是我们的本地调用。远程其实指的就是需要网络通信,可以理解为调用远程机器上的方法。那可能有人说:我用 HTTP 调用不就是远程调用了,那不也叫 RPC 了?不是的,RPC 的目的是:让我们调用远程方法像调用本地方法一样无差别。本来没有拆分服务都是本地调用的时候方法是这样写的:publicStringgetSth(Stringstr){returnyesService...原创 2021-12-04 09:43:39 · 4133 阅读 · 0 评论 -
Java类加载机制&双亲委派机制
类加载阶段分为加载、连接、初始化三个阶段,而加载阶段需要通过类的全限定名来获取定义了此类的二进制字节流。Java特意把这一步抽出来用类加载器来实现。把这一步骤抽离出来使得应用程序可以按需自定义类加载器。并且得益于类加载器,OSGI、热部署等领域才得以在JAVA中得到应用。在Java中任意一个类都是由这个类本身和加载这个类的类加载器来确定这个类在JVM中的唯一性。也就是你用你A类加载器加载的com.aa.ClassA和你A类加载器加载的com.aa.ClassA它们是不同的,也就是用instanceo原创 2021-12-04 09:02:58 · 2842 阅读 · 0 评论 -
Java Facade 外观模式
如果客户端要跟许多子系统打交道,那么客户端需要了解各个子系统的接口,比较麻烦。如果有一个统一的“中介”,让客户端只跟中介打交道,中介再去跟各个子系统打交道,对客户端来说就比较简单。所以Facade就相当于搞了一个中介。外观模式的角色: SubSystem: 子系统角色。表示一个系统的子系统或模块。 Facade: 外观角色,客户端通过操作外观角色从而达到控制子系统角色的目的。对于客户端来说,外观角色好比一道屏障,对客户端屏蔽了子系统的具体实现。 我们以注册公司为例,假设注原创 2021-11-21 17:40:40 · 422 阅读 · 0 评论 -
Java - Lombok插件
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。POJO:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。在该对象中只有private属性的参数以及根据每个参数定义的get和set方法,没有其它的方法、没有类的继承、接口的实现等,更没有被其它框架侵入的java对象。例如:publ原创 2021-10-29 00:28:41 · 271 阅读 · 0 评论 -
Java - SPI机制
面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候不用在程序里动态指明,这就需要一种服务发现机制。java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。这有点类似IOC的思想,将装配的控制权移到了程序之外。什么情况应该把接口放入调用方,什么时候可以把接口归为实现方?1、实现方提供了接口和实现,我们可以引用接口来达到调用某实现类的功能,这原创 2021-10-29 00:12:55 · 1639 阅读 · 0 评论 -
JAVA - 反射机制
Class类除了int等基本类型外,Java的其他类型全部都是class(包括interface)如果获取到了一个Class实例,我们就可以通过该Class实例来创建对应类型的实例:// 获取String的Class实例: Class cls = String.class; // 创建一个String实例: String s = (String) cls.newInstance();上述代码相当于new String()。通过Class.newInstance()可以转载 2021-10-28 23:57:57 · 294 阅读 · 0 评论 -
Java回调函数
C、C++ 允许将函数指针作为参数传递; JavaScript、Python 允许将函数名作为参数传递。在计算机程序设计中,回调函数,简称回调(Callback),是指通过函数参数传递到其他代码的,某一块可执行代码的引用。在 main 函数中,我们异步发送一个请求,并且指定处理响应的回调函数,接着 main 函数去做其他事,而当响应到达后,执行回调函数。当我们想要换一种“处理响应”的方法时,将必须去修改 CallBack 类的 processRequest()方法。而如果将 CallBack 类原创 2021-10-25 00:23:51 · 8580 阅读 · 1 评论 -
设计模式 — 工厂模式
1、工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。工厂方法的目的是使得创建对象和使用对象是分离的,并且客户端总是引用抽象工厂和抽象产品:┌─────────────┐ ┌─────────────┐│ Product │ │ Factory │└─────────────┘ └─────────────┘ ▲ ▲原创 2021-10-17 23:25:38 · 100 阅读 · 0 评论 -
Java DDD—— entity、bo、vo、po、dto、pojo等
VOvalue object:值对象通常用于业务层之间的数据传递,由new创建,由GC回收。restful 使用vo。 针对view显示,在web上传递。用一个VO对象对应整个界面的值。POpersistant object:持久层对象;最形象的理解就是一个PO就是数据库中的一条记录。对应数据库中表的字段,与数据库打交道。PO中应该不包含任何对数据库的操作。VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。Entity实体原创 2021-10-17 22:56:45 · 2819 阅读 · 0 评论 -
Java8 解决空指针--Optional.ofNullable/map等
NPE问题:user.getAddress().getProvince();当user为null时,可能报NullPointerException异常的。加上判空方法:if(user!=null){ Address address = user.getAddress(); if(address!=null){ String province = address.getProvince(); }}这种写法比较丑陋,JAVA8提供了..原创 2021-10-17 22:12:56 · 5521 阅读 · 0 评论 -
领域驱动设计
rest 使用vo。 针对view显示,前端。数据库打交道:POrpc使用DTO代码结构:用户层 interfacectl后缀结-controll应用层 service.Asvc后缀结尾-controll,对领域层服务编排领域层 Domainsvc后缀结尾-controllpo 持久化对象,数据库entity 存放数据库实体mapper 写sql语句?service放 接口和实现类。...原创 2021-10-17 09:40:49 · 213 阅读 · 0 评论 -
Java学习
一、框架: IOC控制反转 ——> 降低耦合度 1、私有属性保存依赖对象,且通过构造函数传入。 2、Spring控制new过程:Spring启动时先实例化依赖,再实例化所需的类。 Bean 是 Bean容器(Spring IOC容器) 生成的对象。 Bean 容器:管理类的实例化、依赖的实例化、依赖的传入 DI:依赖传入 ——》传递服务给客户端 ...原创 2021-09-25 23:12:36 · 197 阅读 · 0 评论 -
Java基础
一次编译多处运行。JRE:Java 运行环境 JVM:Java 虚拟机 IDE:Eclipse等JVM(跨平台的核心) —> JRE—> JDK (开发工具包)Java 运行过程:· 如Hello.java (类名和文件名一致)1、编译: Javac 将源文件(如Hello.java) ——>(编译) class 字节码文件2、解释:Java Hello 运行时,JVM即时编译,将字节码文件转换成机器码。...原创 2021-08-01 09:13:03 · 121 阅读 · 0 评论