Java
琛cc
这个作者很懒,什么都没留下…
展开
-
浅谈Spring Boot 运行原理
首先,创建一个Spring Boot项目。pom.xmlpom.xml文件是一个项目中管理资源和插件的文件,打开 pom.xml 文件,我们可以看到如下图所示:它还存在一个父项目,继续点进去,就可以看到他的父依赖,在父依赖中管理了Spring Boot应用中依赖的所有包版本的地方,在导入包的时候默认是不需要指定版本的;但是,若导入的包在父项目中没有管理,还是需要手动配置版本的。启动器spring-boot-starter 是Spring Boot 的启动器,又叫场景启动器。Spr原创 2020-11-27 13:51:20 · 242 阅读 · 0 评论 -
浅谈Cookie和Session
由于HTTP协议是一种无状态的协议,即客户端浏览器的每一次请求都是独立的,与之前和之后的请求都没有关系,都是相互独立的。这就意味着服务器中没有保存客户端浏览器的数据信息,使得客户端浏览器每一次请求都要带上自己的状态信息去访问服务器。为了弥补HTTP协议的这一缺点,就有了Cookie和Session两种会话机制。一、Cookie机制当客户端浏览器访问服务器时,为了记录客户端浏览器的状态,服务器就为浏览器发送一个Cookie,用来记录浏览器的状态。客户端浏览器会将该Cookie保存下来,当下一次再访原创 2020-11-13 13:44:52 · 161 阅读 · 0 评论 -
Mybatis中的一对一查询
前期准备建立用户信息user和账户表account,并设置外键建立账户account和用户user实体类public class User implements Serializable { private Integer id; private String nam; private String sex; private String address; private Integer age; @Override public原创 2020-09-16 15:36:55 · 476 阅读 · 0 评论 -
Mybatis的动态SQL语句
前期准备数据库表建立用户实体类,生成get和set方法定义持久层接口配置IUserDao.xml文件,由于实体类属性与数据库表列名不一致,因此建立属性与表的映射关系UserMap<if>标签Dao持久层接口Dao持久层映射配置测试<where>标签Dao持久层接口Dao持久层映射配置测试<foreach>标签定义一个QueryVo类,在其中添加 Lsit 属性,用于封装参数原创 2020-09-16 09:57:14 · 85 阅读 · 0 评论 -
Java中的高级特性--反射
反射是框架设计的灵魂1、概念反射(Reflection)机制就是将类的各个组成部分封装为其他的对象,并且能够动态的获取类的信息和动态的调用对象方法。使得能够在Java程序运行状态下,能够知道任意一个类的属性和方法,并且对于任意一个对象都能够调用它的任意的属性和方法。2、反射机制的主要功能(1)在运行状态下判断任意一个对象属于哪一个类;(2)在运行那个状态下创建任意一个类对象;(3)在运行状态下获取任意一个类的属性和方法;(4)在运行状态下调用任意一个对象的属性和方法。3、原创 2020-09-15 15:22:16 · 140 阅读 · 0 评论 -
Iterable 和 Iterator
Iterable 接口 Iterable 意为可迭代的、可重复的,实现 Iterable 接口的集合对象支持迭代,是可迭代。从源代码中可以看到,Collection 接口继承了 Iterable 接口。在 Iterable 接口中定义了三个方法:(1)该方法返回一个 T 类型元素上的迭代器。(2)该方法进行循环输出,对内部元素进行遍历,传递的参数是一个Consumer接口。(3)该方法提供了一个可以并行遍历元素的迭代器,以适应现在cpu多核时代并行遍历的需求。It原创 2020-08-03 16:20:42 · 502 阅读 · 0 评论 -
JavaSE---方法引用
1、双冒号 ::为方法引用运算符,它所在的表达式称为方法引用。如果lambda表达式要表达的函数方案已经存在于某个方法的实现中,则可以通过双冒号来引用该方法作为lambda表达式的替代者。注意:lambda表达式中传递的参数一定是方法引用中可以接收的类型,否则会抛出异常。举例:str -> System.out.println(str): 这个一个输出字符串的lambda表达式,它是指在拿到参数之后,经lambda之手传递给 ...原创 2020-08-01 15:16:49 · 115 阅读 · 1 评论 -
Stream流
1、Stream流是JDK1.8 之后出现的,它是一个来自数据源的元素队列。其中,数据源也就是流的来源,可以是集合、数组等;元素是特定类型的对象,形成一个队列。注意,在Java中,Stream并不会存储元素,而是按需进行计算。2、Stream的基本特征(1)Pipelining:在流上,中间的操作都会返回流对象本身,使得多个操作可以串联成一个管道,对操作进行优化。(2)内部迭代:流可以直接调用遍历方法,实现内部迭代。当使用一个流时,通常包括三个基本步骤:获取一个数据源(source)原创 2020-08-01 10:46:08 · 93 阅读 · 0 评论 -
lambda表达式作为参数传递
lambda表达式有延迟执行的效果,在使用lambda表达式作为参数传递的过程中,仅仅是把参数传递到了方法中,只有满足其条件,才会执行,否则不会执行。因此,不会存在性能浪费。举例:定义一个函数式接口,即可以适用于lambda表达式的接口:@FunctionalInterfacepublic interface Message { public abstract String MessageBuilder();}定义一个类,在类中定义一个有两个参数的方法,其中一个是接口的对象。原创 2020-07-31 09:38:14 · 4082 阅读 · 0 评论 -
流对象中的异常处理
在JDK7中增加了一个新特性: 在try后可增加一个(),在()中可以定义流对象,则这个流对象的作用域就是try代码块,try代码块执行结束之后,会自动把流对象释放,不用再写finally。public class Test03 { public static void main(String[] args) { try(FileInputStream fis = new FileInputStream(new File("a.txt"))){ ...原创 2020-07-30 15:15:12 · 167 阅读 · 0 评论 -
JavaSE -- FileOutputStream 和 FileInputStream
1、FileOutputStream :文件字节输出流 java.io.FileOutputStream extends OutputStream java.io.OutputStream:字节输出流,是一个抽象类,是所有字节输出流的超类。构造方法的作用:(1)创建一个 FileOutputStream 对象;(2)根据构造方法中的文件或文件路径,创建一个空文件;(3)将创建好的 FileOutputStream 对象指向创建好的文件。文件字节流的使用步骤:...原创 2020-07-30 14:59:11 · 344 阅读 · 0 评论 -
JavaSE--文件过滤器FileFilter和FilenameFilter
1、Public Interface FileFilterjava.io.FileFilter 接口:一个抽象路径名的过滤器。该接口的实例可以通过File类的listFiles(FileFilter)方法。接口中的抽象方法:首先,需要定义一个 FileFilter 的实现类,实现接口中的 accept() 方法,在该方法中定义文件过滤的条件。import java.io.File;import java.io.FileFilter;public class FileF..原创 2020-07-30 13:56:28 · 228 阅读 · 0 评论 -
Javase---接口概述
1、什么是接口?接口是一种引用数据类型,是抽象方法的集合,以关键字 interface 来声明。接口无法被实例化,但是它可以被实现。2、接口中可以包含的内容: Java 7 之后:常量 、抽象方法 Java 8 之后:默认方法、静态方法 Java 9 之后:静态方法、私有方法public interface Iinterface { //定义常量 public static final int NU...原创 2020-07-29 15:50:14 · 150 阅读 · 0 评论 -
剑指offer --- 求连续子数组的最大和
题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)代码实现:public stat...原创 2020-07-21 19:51:23 · 75 阅读 · 0 评论 -
剑指offer --- 将字符串转换为整数(Java)
题目描述:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+21474836471a33输出21474836470代码实现(一):(1)将字符串转为字符数组;(2)从数组最后一个字符开始向前遍历,判断是否符合条件,转化为整数;(3)第一个元素需要单独判断,进行正负原创 2020-07-11 15:14:23 · 96 阅读 · 0 评论 -
(孩子们的游戏)有n个小孩围成一圈,给定数字m,从编号为0 的小孩开始报数,喊到m-1的小孩退出游戏,下一名继续从0开始报数,直到剩下一名。
方法一:利用链表来实现,时间复杂度为O(n^2),空进复杂度为O(n)public class Test { //n个小朋友,给定数 m public static int LuckyOne(int n,int m){ LinkedList<Integer> list = new LinkedList<Integer>(); for(int i=0;i<n;i++){ list.add(i);原创 2020-07-10 11:24:40 · 1969 阅读 · 0 评论 -
常见面试题,不使用“+、-、*、\”四则运算符,计算两个整数之和。
举例说明:a = 4, b = 6, 计算a+b。a = 4 0100b = 6 0110进位和(&):0100 = 4非进位和(异或):0010 = 2则 a + b =2 + 4<<1----------------------------------------------2 00104<<1 1000进位和(&):0000 = 0非进位和(异或):1010 = 10当进位和...原创 2020-07-09 20:58:20 · 148 阅读 · 0 评论 -
简单的测试框架,自动执行主方法,判断被检测的方法是否异常,如果异常记录到文件中
被检测的类,Calculator类:public class Calculator { @Check public void add(){ System.out.println("1 + 0 = " + (1+0)); } @Check public void sub(){ System.out.println("1 - 0 = " + (1-0)); } @Check public void mul原创 2020-07-02 21:09:04 · 166 阅读 · 0 评论 -
定义一个类,在不改变该类的情况下,可以创建任意类的对象,执行任意的方法
方法一:使用配置文件和反射实现定义配置文件如下,调用 Student 类中的 sleep() 方法:import java.io.InputStream;import java.lang.reflect.Method;import java.util.Properties;public class Test { public static void main(String[] args) throws Exception { //1、加载配置文件原创 2020-07-02 17:47:22 · 366 阅读 · 0 评论