- 博客(61)
- 资源 (2)
- 收藏
- 关注
原创 Collection
Collection层次结构中的根接口它提供更加具体的子接口如set实现提供增 删 改 查 遍历add 可以添加null关于对象空间假如arrays又10个空间用了四个空间那么size方法就是4使用了clear方法,将四个空间置为null,size还是4但是本身的10个空间还在那么使用isEmpty就还是false...
2020-08-11 17:54:27
131
原创 线程池
newCachedThreadPool()如果有新的线程需求,而没有线程供使用,就会创建新的线程短时间创建异步任务的程序,会提高性能如果现有线程没有可用的,则创建一个新的线程终止并从缓存中移除那些已有的60s未被使用的线程线程数量可变,可根据需要创建新的线程新创建的线程,在缓存60s之后,如果还是没有被使用,这样的线程会被从线程池中移除newFixedThreadPool()线程的数量固定如果线程池所有的线程都在使用,这个时候来的新的任务,会进入一个队列,等待在绝大部分时间,大多数的th
2020-08-04 17:32:20
121
原创 字符流buffer
为了效率,在字符流中引入缓冲流缓冲流中定义了自己独有的方法 readLine和newLinew按行进行操作写入一个行分隔符BufferedWritervoid newLine()BufferedReaderString readLine()读取一行通过\n \t 来进行判断若没有了 返回null构造方法和字节流的缓冲流构造方法一直,都需要一个底层的字符流对象BufferedWriter(Writer out)BufferedReader(Reader in)数据字节流字节打.
2020-07-31 16:53:05
320
原创 File
因为在操作系统中,一切需要永久保存的数据,都是以文件的形式,存储在外部设备中,在java语言中,所有的文件或目录,都可以用file类对象来描述File概述file类是文件和目录,路径名的抽象表达式一个File类对象,可以用来表示一个文件或者一个目录一个File类对象,它表示的是一个路径名,所表示的那个文件或目录抽象和物理存在相对,三种构造方法...
2020-07-28 16:23:12
116
原创 hashcode clone
将任意大小的数据集合通过hash映射的方法到固定大小的数据集合protected Object clone()创建返回此对象的副本,返回的是指向这个对象的地址的地址x.clone() != x 为true,x.clone().getClass() == x.getClass() 为true,表示是同一个类的两个对象,是同一个类x.clone().equals(x) 为true,表示这两个对象相等,表示的是指向的对象Cloneable接口里面什么都没有定义我们将这种接口称之为空接口,该类
2020-07-24 16:09:41
135
原创 匿名内部类
当需要一个子类对象的时候,我们需要两步定义子类创建子类对象匿名对象new A();不带引用的对象通常只使用一次这个类的某个方法的时候使用匿名内部类
2020-07-23 16:31:14
102
原创 内部类
内部类分为两种成员位置内部类,类中方法体之外局部位置内部类,类中方法体之内访问特点1.内部类可以直接访问外部类的成员,包括私有2.外部类要访问内部类的成员,必须要创建对象成员内部类可以加private可以加static静态成员的内部类作为外部类的静态成员,不依赖外部类的对象而存在不需要先声明对象局部内部类只能在定义它的方法体中被访问到这个类可以在局部内部类中访问到定义它的这个方法的局部变量这个类可以访问到外部类的成员...
2020-07-23 14:40:46
87
原创 面向对象 接口
abstract 不能和final private static共存:因为子类需要去覆盖重写实现子类的抽象方法,有这几个前缀的无法实现覆盖class 类名 impeement 接口实质是继承接口中只有抽象方法 jdk7及以前接口不能直接实例化接口中的成员变量 默认public static final接口中的成员方法 只能是抽象方法 public abstract所谓的接口的多重继承就是 接口可以同时继承多个接口,高级覆盖一个类也可以实现多个接口class xx extendx x
2020-07-23 10:16:46
135
原创 抽象
抽象类不能直接实例化抽象类的子类任然可以是抽象类只要子类没有完全override所有的抽象方法,就仍然是抽象类抽象类中的成员:成员变量,和普通类一样构造方法,和普通类一样成员方法,既可以包含抽象方法,也可以有普通方法为什么抽象类不能实例化还可以定义构造方法因为父类中也有成员变量,子类初始化的时候必须要初始化父类的成员变量,所以需要父类也有构造方法下图是显示的构造方法,在子类中写个super将值传进去即可b...
2020-07-21 19:57:38
145
原创 多态
多态,同一个对象的行为,不同条件,表现不同的效果实现多态的三个条件继承方法覆盖父类引用指向子类实例(对象)成员变量编译看左边,运行看左边,也就是引用类型编译看左边,因为需要通过引用变量的值也就是地址去堆中的去操作人看电视用遥控器,我们使用电视机的功能被遥控器所限制每一个new都是披上了父类的马甲,所以具有父类的外貌特征,所以是拥有属性成员方法编译看左边,运行看右边,也就是引用变量实际指向的对象类型运行结果,由于多态指向了实际的对象方法多态的弊端无法通过父类引用使用子类独有的方
2020-07-21 17:28:18
119
原创 java代码块
定义{}括起来的就是代码块根据位置和声明的不同有局部,构造,静态,同步代码块不管什么代码块,我们都需要知道其声明方式和执行时机局部代码块局部代码块在方法中出现,这导致了它的生命周期仅限于这个方法,能尽早的释放,提高内存的利用率,甚至不用等待这个方法都周期结束,只要括号内运行完就结束在嵌套的代码块中,不能够定义同名的局部变量,这个局部变量稍微有点区别,但是如果是两个独立的代码块,那么可以同名public void localBlock(){ //这就是局部代码块
2020-07-18 11:29:16
131
原创 java对象
先引出数据类型的定义:一个数据集合和基于这个数据集合的一组操作:int通过类定义可以发现:成员变量成员方法对应于数据类型的定义:成员变量–>数据集合成员方法–>基于数据集合的一组操作综上类就是一种自定义的数据类型,和int等基本数据类型不同的地方在于,他们是jvm天生就认识的,而自定义的类,即自定义的数据类型,jvm默认并不认识。可以直接写:int a;...
2020-07-18 10:06:04
138
原创 动态代理
动态代理和静态代理角色一样动态代理的代理类是动态生成的,不是我们直接写好的动态代理的实现机制可以分为两大类:基于接口的动态代理;基于类的动态代理动态代理基于接口–JDK动态代理基于雷–cglibjava字节码实现需要了解的两个类Proxy:代理Invokation:调用处理程序...
2020-06-11 08:19:44
136
原创 代理模式
为什么要学习代理模式因为这就是SpringAOP的底层!代理模式的分类:静态代理动态代理静态代理角色分析抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,我们一般会做一些附属操作客户:访问代理对象的人例子首先创建一个租房的接口写一个房东,房东是一个真实的人,所以要重写租房这个接口写一个客户,找房东租房但是一般是找不到房子的,需要找中介所来对接找房子...
2020-06-11 08:19:28
97
原创 使用注解开发
bean属性如何注入衍生的注解自动装配注解作用域小结在使用Spring4之后,要使用注解开发,必须要保证aop包的导入仪使用注解需要岛屿context约束,这在上一篇文章有提到使用这个可以扫面路径下所有的注解,成为component的一个组件<context:component-scan base-package="com.kuang"/>属性如何注入@Component等价于<bean id="name" class="com.kuang.pojo.Use.
2020-06-08 16:20:13
180
原创 Spring注解
@Autowired直接在属性上使用即可,也可以在set方式上使用!使用Autowired我们可以不用编写Set方法了,前提是你这个自动装配的属性在IOC(容器)中存在且符合bytype可以设置一个required,如果为false,说明这个对象可以为Null,否则不允许为空@Autowired(required = false)@Nullable字段被标记了这个注解,说明了这个字段可以为null@Qualifier如果@Autowired自动装配环境比较复杂,自动装配无法通过一个注解来完
2020-06-08 11:54:15
112
原创 Beans的自动装配
为什么要自动装配假如没有自动装配我们要自己写这样的代码<bean id="user" class="com.kuang.pojo.User" p:name="vvvvk" p:age="12" scope="singleton"></bean>自动装配是Spring满足bean依赖的一种方式!Spring会在上下文中自动寻找,并自动给bean装配属性Spring的三种装配方式在xml中显示的配置在java中显示的配置隐式的自动装配beans 重要ByNam
2020-06-08 11:08:10
139
原创 Mybatis的增删改查
CRUDnamespacenamespace的包名要和Dao/Mapper名字一致selectid:就是和namespce中的方法对应的resultType:Sql语句执行的返回值parameterType 参数的类型使用mybatis的流程通过MybatisUtils来获得一个sqlSessionsqlSession通过getMapper这个方法来获得userMapper这个接口的class对象,由此可以操作这个接口在UserMapper.xml中配置select
2020-06-08 09:23:51
107
原创 IOC笔记
IOC创建对象的方式默认的是时候无参构造创建对象,默认!假如我们有了有参构造,则不能直接使用无参构造的方式去配置Bean.xml方法一:方法二:基础数据类型使用int,引用类型使用包,但是如果有两个引用类型的,如两个String就会很麻烦,不建议使用方式三最好关于加载无论是否使用了bean里面的东西,bean里面的东西都会被加载,注册的一瞬间就已经被spring实例化了换句话说在配置文件加载的时候,容器中管理的对象就已经实例化了import这个import,一般用于团队开发使用,
2020-06-07 11:21:39
88
原创 初次使用Mybatis的问题
没有在mapper注册代码在执行的时候,Mybatis根本不知道有Mapper.xml这个文件。所以需要在mybatis-config.xml中注册 <mappers> <mapper resource="/com/kuang/dao/UserMapper.xml"/> </mappers>初始化异常失败在注册了之后发现运行仍然失败,可以发现找不到UserMapper.xml这个文件打开target目录可以发现并没有生成这个xml听狂
2020-06-05 11:47:57
104
原创 注解和反射
反射反射相关的主要APIjava.lang.Class: 代表一个类java.lang.reflect.Method: 代表类的方法java.lang.reflect.Field: 代表类的成员变量java.lang.reflect.Constructor: 代表类的构造器使用Class c1 = Class.forName("com.kuang.reflection.User");来通过反射获得反射出来的class对象//测试public class Test02 { public
2020-06-05 11:43:40
111
原创 java学习笔记-内存划分
java的内容需要划分成为5个部分1.栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中进行2.堆(Heap):凡是new出来的东西,都在堆当中堆内存里面的东西都有一个地址值:16进制。堆内存里面的数据,都有默认值,规则:整数:0浮点数:0.0字符:“\u0000"布尔:false引用:null3.方法区(Method Area):存储.class相关的信息,包...
2020-06-04 11:14:30
113
原创 如何使用thymeleaf复用代码
使用fragment定义想要复用的代码段<nav class="col-md-2 d-none d-md-block bg-light sidebar" th:fragment="sidebar">然后使用insert插入<div th:insert="~{dashboard::sidebar}"></div>
2020-06-04 08:13:40
951
原创 如何使用登录拦截器
先在config目录下创建一个LoginHandlerInterceptor因为拦截器需要用户的session来证明是否登录,所以需要在LoginController里面添加session,设置一个session名字叫做loginUser,username是要保存的对象得到loginUser,判断是否为空,若不为空就通过,若为空就提示信息,这里判断是否为空的使用的LoginController里面的msg,这个msg只有登陆失败才会产生,与该判断条件吻合。提示信息之后跳转到/index.htmlp
2020-06-02 16:26:09
369
原创 如何更改网页跳转之后的链接
//具体的业务:判断用户密码是否正确 if(!StringUtils.isEmpty(username) && "123456".equals(password)){ return "dashboard"; //返回dashboard.html }else { //通过Model来告诉用户登陆失败 model.addAttribute("msg","用户名或者密码错误");
2020-06-02 11:03:22
1082
原创 SpringBoot Web开发
自动装配springbootxxxAotuConfiguration: 向容器中自动配置组件xxxProperties:自动配置类,装配配置文件中自定义的一些内容要解决的问题导入静态资源首页jsp,模板引擎Thymeleaf装配扩展SpringMVC增删改查静态资源的存储默认可以放在resources目录下的三个目录中,这是映射在localhost:8080/**优先级从大到小依次是resources/static/public但是如果在application.prope
2020-06-01 15:13:20
143
原创 Springboot
jdk1.8maven3.6.1springboot:最新IDEA第一个Web项目创建即可springboot将spring再一次的封装,我们只需要设置Controller层的即可创建一个和application同级的package com.kuang.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapp.
2020-05-30 17:00:31
137
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人