Java基础
文章平均质量分 90
Java基础
Aran_
风筝有风,海豚有海
展开
-
【跟着源码学英语】 Map.java 是个接口
不定时java源码学习,这次是Map.java原创 2021-04-02 17:44:57 · 303 阅读 · 0 评论 -
【跟着官网学】mybatis-001 :入门
本文参考官网地址:点我直达这是【跟着官网学】mybatis的第一篇文章。每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。一、XML配置XML 配置文件中包.原创 2020-11-29 22:17:53 · 275 阅读 · 0 评论 -
[java设计模式]我眼中的抽象工厂模式
千呼万唤的抽象工厂模式,它来了!上一篇分享的工厂模式,它在这里定义 :抽象工厂模式(Abstract Factory),提供了一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。假设你已经了解了工厂模式,那么我们对比一下工厂模式和抽象工厂的类图:工厂模式:抽象工厂模式:那么,如何理解呢?在介绍工厂模式的时候时候,我自己胡诌了一个面点和面点厂的例子,这次,我们还是用这个例子进行说明,只是稍微换一个方式:说明:面点厂相当于父类,具体的面点继承于面点厂的“加面”和“加糖”的原创 2020-08-06 15:01:10 · 197 阅读 · 0 评论 -
[java工具类] AES加密解密工具类
AES是一种对称加密方式,加密解密同用一个Key,常用类,不解释 package com.wr.park_toolkit.utils; import java.util.Properties; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.tomcat.util.codec.b原创 2020-07-29 16:09:24 · 855 阅读 · 0 评论 -
[java工具类]MD5withRSA签名算法工具类
加密 & 解密 & 签名 若想深究,还是有点深度的,本身密码学就是一门单独的学科,先会用,有个感性的认识,之后慢慢研究!package com.wr.park_toolkit.utils;import java.security.InvalidKeyException;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import原创 2020-07-29 15:33:04 · 939 阅读 · 0 评论 -
[java工具类] 请求参数工具类
在开发过程中,我们经常需要将请求参数进行 & 拼接,以下是一个工具类,可以将Map中的数据转换为 & 格式的请求参数:package com.wr.park_toolkit.utils;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util原创 2020-07-29 14:17:06 · 735 阅读 · 0 评论 -
[java设计模式]我眼中的工厂模式
工厂模式,又叫工厂方法模式,其应用非常广泛,今天我们一起学习下工厂模式:1.1 定义工厂方法模式(Factory Method) :定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。如果你已经了解了简单工厂模式,对于工厂模式的定义就会更加清楚一些,我们还是用加减法的例子,先通过类图来对比一下简单工厂模式和工厂模式的区别:简单工厂模式:工厂模式:意思就是,与简单工厂相比,我们实例化具体的实体的工作交给了其子类或实现类,而不是由自己来完成。文字描述.原创 2020-07-28 23:33:42 · 238 阅读 · 0 评论 -
【java基础】java泛型[一]——使用泛型的三种方式
一、为啥要使用泛型?以前没有泛型的时候,泛型的设计时通过继承来实现的。ArrayList只维护一个Object引用的数组,存在了两个问题:获取一个值时,必须进行强制类型转换可以向其中添加任何类型的值而现在,泛型提供了更好的解决方法,使用 {类型参数}:var files = new ArrayList<String>();//或ArrayList<String> files = new ArrayList<>();二、Java泛型的应用场景Jav原创 2020-07-28 15:00:27 · 760 阅读 · 0 评论 -
[java设计模式] 我眼中的简单工厂模式
在学习简单工厂模式之前,我们先来复习下设计模式的六大原则:1.1 设计模式的六大原则开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。里氏代换原则(Liskov Substitution Principle)里氏代换原则(Liskov Substitution Principl.原创 2020-07-24 21:01:55 · 248 阅读 · 1 评论 -
[springBoot]震惊!多线程中使用@Autowired居然会发生这样的事!
近期,在项目中需要用到多线程,而且需要读取配置文件中RocketMq的相关参数,于是乎自自然而然的将配置文件映射到实体类中(据说Spring不建议这样干?),重复三遍,以后具体查一下:为什么Spring不建议将配置映射到实体类?为什么Spring不建议将配置映射到实体类?为什么Spring不建议将配置映射到实体类?然后,自然而然的用@Autowired在多线程中注入这个实体类!就这样奇迹发生了…在多线程中注入的实体类一直 空指针异常,而在test中却完全没问题,说明我的映射是成功了的,那,为啥?原创 2020-07-21 15:09:59 · 1730 阅读 · 0 评论 -
[java设计模式] 我眼中的单例模式(二)
上一篇[java设计模式] 我眼中的单例模式(一) 我们介绍了一些单例(单件)模式的基本概念,本文将对其中介绍的几种实现方式进行介绍:1. 饿汉模式类加载的时候就创建实例优点:类加载的时候就创建一次实例,避免了多线程同步问题缺点:即使单例没被用到也会创建,浪费内存public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){} public static Si原创 2020-07-19 17:08:53 · 135 阅读 · 0 评论 -
[java设计模式] 我眼中的单例模式(一)
本篇将对单例模式的定义及应用场景部分进行简要描述定义: 确保一个类只有一个实例,并且提供一个全局访问点。属于设计模式三大类中的 创建型模式特点:只有一个实例自我实例化提供全局访问点优点:由于单例模式只生成一个实例,所以能够节约资源,减少性能开销,提高系统效率,同时也能够严格控制客户对它的访问。缺点:正是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,这样扩展起来会有一定困难。常见的实现方式:饿汉式懒汉式双重检锁式静态原创 2020-07-19 17:02:57 · 137 阅读 · 0 评论 -
[java基础] java.io与java.nio
整理一张Java.io包的结构图,留着以后慢慢学习而对于Java.nio,处理的方式便不是字符或字节,而是以Channel(通道)、Buffer(缓冲区)和Selector(选择器)为核心的,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如连接打开,数据到达),因此,单个线程可以监听多个通道。两者的区别是:Java.io是面向流的,而NIO是面向缓冲区的特此记录,后面会详细学习并附上例子!我是Aran,一起终身学习~...原创 2020-07-06 23:44:50 · 226 阅读 · 0 评论 -
[spring-aop](一)入门篇-基础概念
一、什么是AOP?AOP(Aspect Oriented Programming),即面向切面编程。众所周知,OOP(面向对象编程)通过的是继承、封装和多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。OOP从纵向上区分出一个个的类来,而AOP则从横向上向对象中加入特定的代码。AOP使OOP由原来的二维变为三维了,由平面变成立体了。AOP采用"横切"的技术,剖解开封装的对象内部,将影响了多个类的公共行为封装到一个可重用模块。将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于转载 2020-07-02 23:02:02 · 252 阅读 · 0 评论 -
[java基础] Java中的内部类基础
一、内部类介绍1.1 什么是内部类顾名思义,就是定义在另一个类的内部的类1.2 为什么要使用内部类?内部类可以对同一个包中的其他类隐藏内部类方法可以访问定义这个类的作用域中的数据,包括原本私有的数据二、内部类的划分成员内部类静态内部类方法内部类匿名内部类为了更好的理解内部类,我们定义如下两个类,后面的所有说明都基于这两个类:package com.aran.innerClass;/** * 一个外部类 * * @Author Aran * @Date 2020原创 2020-06-25 19:01:52 · 182 阅读 · 0 评论 -
[java基础]logback日志按照日志级别输出
logback日志按照日志级别输出:<configuration> <property name="APP_NAME" value="parkApi"/> <property name="LOG_HOME" value="log" /> <contextName>${APP_NAME}</contextName> <!-- 控制台日志输出 --> <appender name="stdou原创 2020-06-22 17:32:06 · 799 阅读 · 0 评论 -
[java基础]将请求参数排序并拼接
在日常的开发中,我们经常需要在请求参数签名前,对请求参数的参数名进行排序并拼接,再次记录,与君分享:先上代码:package com.wr.park_toolkit.utils;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 请求参数工具类 * * @author ara原创 2020-06-22 15:03:58 · 2100 阅读 · 0 评论 -
[java基础]Java中Lambda表达式详解
本文为转载:查看原文为什么使用lambda?在java中我们很容易将变量赋值,比如:int a = 0;int b = a;但是我们如何将一段代码和一个函数赋值给一个变量?这个变量应该是什么类型?在javascript中,可以用一个对象来存储:var t=function(){ int a=1; a=a+1; alert(a);} 在java中,直到java8的lambda的特性问世,才有办法解决这个问题什么是lambda什么是lambda?lambda在程序中转载 2020-06-19 11:11:20 · 790 阅读 · 1 评论 -
[java基础] int 和 Integer的爱恨情仇
下面是一段经典的程序:package com.aran.basicDataType;/** * @Author Aran * @Date 2020/6/16 6:42 下午 */public class IntegerAndInt { public static void main(String[] args) { Integer v1 = 10; Integer v2 = 10; System.out.println(v1 == v2原创 2020-06-17 17:52:55 · 184 阅读 · 0 评论 -
【实例】Java常用的String Api
package com.aran.String;/** * @Author Aran * @Date 2020/3/17 9:43 下午 * 常用的String的Api */public class StringApiTest { public static void main(String[] args) { String testStr = "Everyd...原创 2020-03-17 22:50:10 · 209 阅读 · 0 评论 -
Java集合(一)——基本介绍
参考《Java核心技术》一、Java集合框架1.1 集合接口与实现分离Java集合类库也将接口(interface)与实现(implementation)分离。以“队列”举例:队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数。当需要手机对象,并按照"先进先出"方式检索对象是就应该使用队列队列接口的最简形式可能类似如下:public inter...原创 2020-02-23 12:39:22 · 127 阅读 · 0 评论 -
java泛型(三)、通配符的使用
通配符有三种:1、无限定通配符 形式<?>2、上边界限定通配符 形式< ? extends Number> //用Number举例3、下边界限定通配符 形式< ? super Number> //用Number举例1、泛型中的?通配符如果定义一个方法,该方法用于打印出任意参数化类型的集合中的所有数据,如果这样写:import j...转载 2020-02-21 11:35:28 · 193 阅读 · 0 评论 -
java泛型(一)、泛型的基本介绍和使用
1.泛型的基本概念泛型的定义:泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。泛型思想早在C++语言的模板(Templates)中就开始生根发芽,在Java语言处于还没有出现泛型的版本时,只...转载 2020-02-21 11:23:11 · 222 阅读 · 0 评论 -
java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
参考:《java核心技术》一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有泛型的信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦除(type erasure)。Java中的泛型基本上都是在编译器这个层次实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候机上的类型参数,会在编译器在...转载 2020-02-20 11:37:57 · 182 阅读 · 0 评论