![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
千裡
无
展开
-
SpringMVC学习(三)编码问题与JSON
目录设置过滤器测试设置过滤器在web.xml中添加过滤器 <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <par原创 2020-08-03 17:02:35 · 121 阅读 · 0 评论 -
SpringMVC学习(二)
目录使用注解修改第一个mvc程序修改springmvc-servlet程序controller使用注解修改第一个mvc程序修改springmvc-servlet程序<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2020-08-02 20:46:40 · 119 阅读 · 0 评论 -
SpringMVC学习(一)
目录回顾Servlet导入依赖包添加Servlet类处理请求在web.xml中注册Servlet在WEB-INF中创建跳转视图回顾Servlet导入依赖包父项目导入依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</原创 2020-08-01 21:09:48 · 117 阅读 · 0 评论 -
Spring学习(四)整合Mybatis
整合MyBatis依赖pom.xmljunitmybatismysqlspring相关aop织入mybatis-spring(对mybatis和spring版本有要求,参考官方文档)配置静态资源过滤器<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://myba原创 2020-08-01 16:36:39 · 118 阅读 · 0 评论 -
Spring学习(三)
目录AOPAOP在Spring中的作用使用Spring实现Aop(XML实现)log包(方法一用到)service包diy包自定义切面(方法二用到)applicationContext.xmlTest使用注解实现AOP创建注解切面修改配置文件总结AOPAOP(Aspect Oriented Programming)面向切面编程。AOP在Spring中的作用提供声明式事务;允许用户自定义切面横切关注点:跨越应用程序多个模块的方法或功能。即与业务逻辑无关的,但是我们需要关注的部分,就是横切关注点原创 2020-08-01 02:29:48 · 94 阅读 · 0 评论 -
Spring学习(二)
Bean的自动装配自动装配是Spring满足bean依赖的一种方式,Spring会在上下文(Context)中自动寻找,并自动给bean装配属性三种方式在XML中显式配置在JAVA中显式配置隐式的自动装配Bean(重要)在xml中设置进行自动装配(略去)使用注解实现自动装配导入约束context配置注解的支持<context:annotation-config/>在pojo中添加注解@Autowired,可以在属性上使用,也可以在set方法上使用注意:首先byNa原创 2020-07-31 13:55:55 · 72 阅读 · 0 评论 -
java复习总结脑图
java入门并发jvm计算机网络操作系统MySqlMyBatis原创 2020-07-30 21:26:14 · 266 阅读 · 0 评论 -
Spring学习(一)
目录Spring简介Spring配置依赖注入代码pojo配置文件xml测试类Spring简介文档:https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#spring-coreSpring是一个免费开源的框架(容器)轻量级非入侵式的框架控制翻转(IOC)、面向切面编程(AOP)对框架整合的支持理解:对象交给spring管理Spring配置依赖注入方式一:构造器注入方式二:原创 2020-07-30 21:21:15 · 102 阅读 · 0 评论 -
MyBatis学习(四)
目录缓存一级缓存代码(核心配置、bean、dao、utils、TEST)运行结果二级缓存缓存存在内存中的临时数据,将用户经常查询的数据放在缓存中,用户就不用从磁盘去查询,提高了查询效率一级缓存一级缓存(默认打开),在sqlSession从创建到close之间有效官方文档:select会缓存,增删改会刷新缓存验证:开启日志,在一次sqlsession中查询两次记录,并且比较。再两次查询中间修改一次数据,再查询。代码(核心配置、bean、dao、utils、TEST)mybatis-co原创 2020-07-29 22:25:10 · 88 阅读 · 0 评论 -
MyBatis学习(三)
目录一对多和多对一处理数据库设计核心配置文件多对一处理bean文件(省略get,set,constuctor,tostring函数)dao接口解决方式一对多处理bean文件(省略get,set,constuctor,tostring函数)dao接口解决方式总结一对多和多对一处理数据库设计CREATE TABLE `mybatis`.`teacher` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(45) NULL DEFAULT NULL原创 2020-07-29 00:32:56 · 91 阅读 · 0 评论 -
Mybatis学习(二)
目录作用域(Scope)和生命周期SqlSessionFactoryBuilderSqlSessionFactorySqlSession属性名和字段名不一致问题日志的使用使用STDOUT_LOGGING使用LOG4J自定义输出作用域(Scope)和生命周期错误的使用会导致非常严重的并发问题SqlSessionFactoryBuilder一旦创建SqlSessionFactory,就不在需要最佳作用域:局部变量SqlSessionFactory类似数据库连接池,没有任何理由丢弃它或重新创原创 2020-07-28 20:20:01 · 87 阅读 · 0 评论 -
MyBatis学习(一)
目录简介第一个MyBatis程序步骤配置文件mapper代码创建数据库、表、插入数据pom.xmlmybatis-config.xmlUser(bean/pojo)Dao接口userMapper.xmlTest(测试文件一般放在test同级目录下)简介MyBatis 是一款优秀的持久层框架。官方文档https://mybatis.org/mybatis-3/zh/getting-started.html持久化:将数据在持久状态(数据库/io文件…)和瞬时状态(内存)转化的过程。持久层:完成持久化工原创 2020-07-28 01:24:41 · 167 阅读 · 0 评论 -
代理模式(Proxy)总结
目录代理模式介绍代理模式的形式静态代理代理模式介绍所谓单例模式,就是为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处:可以在目标对象实现的基础上,增强额外的功能操作,即拓展目标对象的功能。代理模式的形式主要有三种形式:静态代理动态代理(JDK代理、接口代理)Cglib代理(可在内存中动态的创建对象,而不需要实现接口,也属于动态代理的范畴)静态代理...原创 2020-07-18 14:39:33 · 1116 阅读 · 1 评论 -
Java反射
反射能够分析类能力的程序称为反射(reflective)。反射机制的功能极其强大,反射机制可以用来:(1)在运行时分析类的能力。 (2)在运行时查看对象, 例如, 编写一个 toString方法供所有类使用。 (3)实现通用的数组操作代码。 •利用 Method 对象, 这个对象很像中的函数指针。...原创 2020-07-04 17:53:26 · 1952 阅读 · 0 评论 -
查缺补漏(二)Java基本知识
访问修饰符private:仅对本类可见。无修饰符(默认):对本包可见。protect:对本包以及所有子类可见。public:对所有类可见。修饰符\可见域类内部本包子类外部包private√无修饰符√√protect√√√public√√√√...原创 2020-07-04 12:15:26 · 118 阅读 · 0 评论 -
mysql数据库的安装与jdbc入门
mysql数据库的安装原创 2020-06-26 16:29:27 · 478 阅读 · 0 评论 -
Java类文件结构
参考《深入理解JVM》生成类文件编写java程序,通过编译器编译或者使用javac编译器形成字节码文件(*.class)。如下代码:public class TestClass { private int m; public int inc() { return m + 1; }}使用idea进行编译,在out目录下生成TestClass.java文件。类文件的结构Class文件格式采用结构体来存储数据,伪结构只有两种数据类型:...原创 2020-06-20 13:20:56 · 162 阅读 · 0 评论 -
Java内存区域与内存溢出异常
目录运行时数据区域程序计数器虚拟机栈本地方法栈堆方法区运行时数据区域Java运行时数据区域主要包括虚拟机栈、本地方法栈、程序计数器、方法区、堆。其中,方法区和堆是所有线程共享的数据区,虚拟机栈、本地方法栈和程序计数器是线程隔离的。如下图:程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程执行字节码的行号指示器。每条线程都需要一个独立的程序计数器。同时程序计数器是唯一一个没有规定OOM(OutOfMemoryError)情况的区域。虚拟机栈虚拟机栈和程序计数器都是线程私有的,生命周原创 2020-06-07 22:45:08 · 164 阅读 · 0 评论 -
Java并发入门
Thread类Java多线程使用Thread类实现,该类实现了接口Runnable。创建线程的方法创建线程有如下3种方法。继承Thread,重写run方法。实现Runnable接口,重写run方法。实现Runnable接口,重写run方法。(使用lambda表达式实现)。见如下代码:public class Hello { public static void main(String[] args) { Thread t1 = new myThread();原创 2020-06-06 23:47:36 · 124 阅读 · 0 评论 -
Java集合的使用
import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;public class LinkedListTest {public static void main(String[] args) {LinkedList nums = new LinkedList<>();//一种可以在任何位置进行高效地插人和删除操作的有序序列nu原创 2020-06-05 21:44:39 · 145 阅读 · 0 评论 -
查缺补漏(一)Java抽象类和接口
抽象类1)当一个类中定义了抽象方法,则该类必须标记为抽象类。2)如果一个类中没有抽象方法,则该类也可以标记为抽象类。3)抽象类不能实例化。4)可以定义一个抽象类的对象,但是他只能引用该类非抽象子类的对象。接口1)同样,接口不能实例化,但是可以申明变量,其必须引用实现了接口的类对象。2)接口中可以包含常量。3)引入接口的原因:一个类只能继承一个父类,但是可以实现多个接口是。4)Java SE8之后,允许在接口中增加静态方法,但是不太规范。5)可以用default修饰符标记为接口方法提供一个原创 2020-06-04 19:34:39 · 110 阅读 · 0 评论 -
字节码角度分析++i和i++
通过示例从字节码的角度研究++i和i++底层发生的事情这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markd原创 2020-06-02 20:53:05 · 266 阅读 · 0 评论 -
Java字符串(String)总结
目录String(字符串)获得子串拼接不可变字符串检测相等空串与Null串常用方法可变字符串常用方法:String(字符串)Java 没有内置的字符串类型, 而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String。每个用双引号括起来的字符串都是 String类的一个实例:String e = “”; // an empty stringString greeting = “Hello”;获得子串String greeting = "hello";String s = g原创 2020-05-23 19:09:47 · 104 阅读 · 0 评论 -
Java中的lambda表达式
lambda表达式的引入对一个字符串数组按照字符串的长度由小到大排序的代码如下(向sort方法中传递一个Comparator对象):import java.util.Arrays;import java.util.Comparator;public class LambdaTest { public static void main(String[] args) { String[] nums = new String[]{"abc" ,"bcsd","qweqds"};原创 2020-05-22 23:11:56 · 129 阅读 · 0 评论 -
单例模式(SingleTon)总结
目录单例模式介绍单例模式的种类1.饿汉式(静态变量)2.饿汉式(静态代码块)3.懒汗式(线程不安全)4.懒汗式(线程安全)5.懒汗式(线程安全,同步代码块)6.双重检查7.静态内部类8.枚举单例模式介绍所谓单例模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。单例模式的种类单例模式的8种方式:饿汉式(静态变量)饿汉式(静态代码块)懒汗式(线程不安全)懒汗式(线程安全)懒汗式(线程安全,同步代码块)双重检查原创 2020-05-19 16:30:42 · 161 阅读 · 0 评论