![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 66
.Deborah
这个作者很懒,什么都没留下…
展开
-
面向切面编程
面向切面编程CGLIB的动态代理不需要接口,目标类有没有接口都可以package com.kang;import java.lang.reflect.Method;import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import org.springframework.cglib.proxy.MethodProxy;import原创 2021-05-25 14:01:55 · 95 阅读 · 0 评论 -
Spring小结3
Spring小结3代理模式1.静态代理2.动态代理代理模式是为现有的功能类提供一个代理类,外部使用时,使用的是代理类。主要的目的为了不修改原有类的代码,我们扩展功能时,在代理类上扩展;使用方和功能的提供方解耦合。1静态代理提前为目标定义好要用的代理类,一个目标类可以有多个代理类当我们提前定义好的多个代理类,如果没有使用的话,就造成了资源的浪费。组成部分:1.功能接口2.实现了该接口的目标类3.实现了该接口的代理类package com.kang.proxy;public in原创 2021-05-21 17:18:52 · 103 阅读 · 0 评论 -
spring小结2
spring小结2工厂模式简单工厂(静态工厂)工厂方法(实例工厂)抽象工厂(工厂的工厂)作用:1.隐藏对象的创建细节,让使用者只关系对象的功能的使用2.解耦合工厂方法:生产的产品类型不确定1.提供一个工厂接口,在接口中提供一个生成产品的方法抽象工厂:生产多种类族下的多种产品的一种解决方案1.提供一个抽象工厂,定义所有要生产产品的规范方法2.各种具体生产产品的工厂,改工厂需要继承自抽象工厂简单工厂(静态工厂)package com.kang.factory;import co原创 2021-05-21 15:27:35 · 87 阅读 · 0 评论 -
spring
spring小结1核心功能:1.IOC(控制反转):将对象的管理权限交给spring容器,管理生命周期2.DI(依赖注入):管理IOC容器中对象的依赖关系3.AOP(面向切面 ):对面向对象补充, 解决系统级别的非核心功能耦合度问题Spring是一个开源的免费的框架(容器)Spring是一个轻量级的、非入侵式的框架控制反转(IOC)、面向切面的编程(AOP)支持事务的处理,对框架整合的支持Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架配置文件<?原创 2021-05-19 12:45:18 · 58 阅读 · 0 评论 -
mybatis小结4
mybatis小结4多表查询创建两张表,添加相关属性表与表之间建立关联靠字段在java中,它是一个面向对象的语言,表明关系时,肯定是对象和对象,不能再是属性。案例:class Room{//要和person产生关联 此处写为:private List<Person> persons;}class Person{//要和Room产生关系private Room room;//不能写成 private Integer roomId;}上面room和person的实原创 2021-04-22 21:03:26 · 57 阅读 · 0 评论 -
mybatis小结3
mybatis小结3配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 所有的配置都需要写到该标签内部 --><configuration><!-- 引入属性文件原创 2021-04-21 12:53:40 · 138 阅读 · 0 评论 -
mybatis小结2
mybatis小结2面向接口编程/实体类:映射数据库中的表public class Student { //对应表中的四个字段,一般情况下,最好属性名和字段名保持一致private Integer id;private String name;private Integer age;private String sex;public Integer getId() { return id;}public void setId(Integer id) { this.id = id;原创 2021-04-17 10:25:58 · 72 阅读 · 0 评论 -
MyBatis小结1
MyBatis小结11.持久性框架:我们将数据存储在磁盘中的行为,被称为持久化:负责操作数据库的框架2.mybatis、hibernate、3.ORM框架:目前流行的持久性框架,都是ORM框架4.ORM:object Relation Mapper(对象关系映射) 将咋们的java对象和关系型数据库建立映射关系,本质上就是可以将记录和java对象进行互相转化5.阻抗不匹配:将表中的记录和对象 模型不匹配行为;ORM主要解决阻抗不匹配的问题6.完全ORM:使用者可以不用写sql语句,只要原创 2021-04-17 09:57:28 · 71 阅读 · 0 评论 -
JSP小结
JSP小结MVC:modle(数据模型) view(视图) controller(控制器)1.为了将数据层和视图层进行解耦2.M和V不直接通讯,都是通过C进行通讯BIAO1JSP:Java server Page 本质上是一个特殊的Serverlet1.语法2.三大指令 page、include、 taglib3.九大内置对象(隐式对象)4.七大动作指令5.el表达式6.标准标签库jstl配置文件<%--JSP的注释,在前端不显示 <%@:用来定义原创 2021-04-09 14:30:31 · 52 阅读 · 0 评论 -
jdbc小结3
jdbc小结3批量执行SQLpackage com.kang;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.util.Arrays;//SQL语句的批量执行//1.只能批量执行DML//2.只能通过Statement执行public class JDBC4 {public stati原创 2021-04-07 12:55:45 · 64 阅读 · 0 评论 -
JDBC小结2
JDBC小结2##package com.kang;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;public class JDBC2 { public static void main(S原创 2021-03-31 12:54:13 · 1563 阅读 · 2 评论 -
JDBC小结1
JDBC小结11.JDBC:java数据库连接技术sun公司只提供接口与抽象类,具体实现由各大数据库厂商实现各大厂商的实现称为驱动sun公司提供的接口和抽象类:1.DriverManger 驱动管理器2.Connection 连接数据库3.Statement 执行SQL语句4.ResultSet 结果集步骤1.加载驱动2.连接数据库3.通过Statement对象执行SQL4.通过ResultSet获取结果集packa原创 2021-03-29 17:50:37 · 112 阅读 · 2 评论 -
练习3
练习31.下列那个类没有实现java.util.Map 接口?A:HashtableB:HashMapC:VectorD:IdentityHashMap//答案为C//A,B,D都实现了Map接口,其中A与B的区别是一个是线程安全的,一个是线程不安全的C中Vector是实现了List接口,是一个线程安全的List2.JSP分页代码中,哪个步骤次序是正确的?A:先取总记录数,得到总页数,最后显示本页的数据。B:先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。C:先取总页原创 2021-03-24 20:24:26 · 890 阅读 · 0 评论 -
牛客练习2
牛客练习21.对于以下代码段,4个输出语句中输出true的个数是( 3)。class A{}class B extends A{}class C extends A{}class D extends B{}A obj = new D();System.out.println(obj instanceof B);System.out.println(obj instanceof C);System.out.println(obj instanceof D);System.out.prin原创 2021-03-22 20:40:28 · 328 阅读 · 0 评论 -
牛客练习
牛客练习1.程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” ,语句为(A) A:if(i>10)throw new Exception("something’swrong!");B:if(i>10)throw new Exception("something’swrong!");C:if(i>10) throw new Exception e("someth原创 2021-03-17 13:22:13 · 420 阅读 · 3 评论 -
SQL练习2
SQL练习24.1查有成绩的学生信息select *from studentwhere student.sid in(select DISTINCT sc.sid from sc);5.查询「白」姓老师的数量select count(*)from teacherwhere teacher.tname like’白%’;6.查询学过「张三」老师授课的同学的信息select * from student,SCwhere(student.sid=SC.sidand sc.cid in (原创 2021-03-17 12:22:04 · 130 阅读 · 0 评论 -
SQL 练习1
SQL 练习1一、 建立各种表1.学生表 Student(SId,Sname,Sage,Ssex)–SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别create table student(Sid integer,Sname varchar(20),Sage integer,Ssex varchar(20)) charset=utf8;insert into student(Sid, Sname,Sage,Ssex) values(1,‘张三’,18,‘男’);in原创 2021-03-15 21:14:02 · 470 阅读 · 0 评论 -
SQL:结构化的查询语音
SQL:结构化的查询语音MYSQL、Oracle、SQL Server、DB2、sqlite3关系型数据库是指存储数据的容器是一个二维表格1.记录:表中的一行 等同于Java中的一个对象2.字段:表中的一列 等同于Java中对象的属性sql语句:1.DDL:数据库定义语言,对数据库表结构进行操作:建库、建表、修改表结构、删库、删表等等SQL语句大小写不敏感1.创建数据库CREAT DATABASE[if NOT EXIST] dbname[charset=utf8 collate原创 2021-03-13 21:03:35 · 369 阅读 · 2 评论 -
泛型
泛型当将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,改对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。List list=new ArrayList();list.add(new Random());list.add("asd"); //list并没有识别"abc"是字符串类型,而是当作Object进行处理String str=list.get(0);//语法错误,需要编程实现类型转换注意:问题1进行数据的强制类型转换之前必须进行类型判断,C原创 2021-03-11 20:41:27 · 161 阅读 · 3 评论 -
反射机制
反射机制反射机制:在运行时,我们可以动态的获取类中的信息;在运行期间可以实例化对象、调用方法 属性等等所有的反射机制都是由字节码对象发起的反射机制直接操作字节码文件,获取字节码对象:Class class1=CC.class;//警告信息:Class是泛型Class class2=Class.forName("com.kang4.CC");Class class3=new CC().getClass();获取类中的信息class DD{ public String hhh; pro原创 2021-03-08 21:08:11 · 63 阅读 · 0 评论 -
什么是线程池
什么是线程池创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5开始,Java API提供了Executor框架可以创建不同的线程池。比如单线程池,每次处理一个任务;数目固定的线程池或者是缓存线程池(一个适合很多生存期短的任务的程序的可扩展线程池)new Thread的弊端每次new Thread新建对象性能差。线程缺乏统一管理,可原创 2021-03-05 15:46:22 · 238 阅读 · 0 评论 -
过滤流类型
过滤流类型过滤流就是在节点流的基础上附加功能处理类型字符流字节流缓存BufferedReader、BufferedWriterBufferedInputStream、 BufferedOutputStream过滤处理FilterReader、FilterWriterFilterInputStream、FilterOutputStream桥接处理InputStreamReader OutputStreamWriter对象序列化处理Object原创 2021-03-05 15:12:23 · 314 阅读 · 0 评论 -
多线程编程基础
多线程编程基础基础概念程序是为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码,是一个静态的概念进程是具有一定独立功能程序的运行过程,是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独立运行的一段程序。进程是程序的一次执行过程,通常是一个可执行程序在内存中的一个完整副本,每个进程都有自己的数据段、栈段和代码段,是一段完整的程序,在内存中占据较大的空间,是系统进行调度和资源分配的一个独立单位。是一个动态的概念多进程是指操作系统能同时运行多个任务(原创 2021-03-05 13:48:06 · 104 阅读 · 0 评论 -
流模型
流模型主要目的:屏蔽具体实现的区别,使用统一的方法进行编程输入和输出字节和字符节点和过滤 装饰模式BIO NIO AIO字节流父类InputStream和OutputStream一次一字节的操作方式,一般用于声音、图像、视频之类的二进制文件InputStream方法: - read():int -1 - read(byte[]):int -1 - close():void - FileInputStream主要用于操作文件 - System.in 主要用于接收用户输入Outpu原创 2021-03-03 13:02:00 · 207 阅读 · 4 评论 -
输入输出编程
输入输出编程1.输入输出流模型在java程序中,对于数据的输入输出操作以流Stream方式进行,javaSE提供各种各样的类用于使用相同方法获取不同类型的数据,程序中通过标准的方法输入或者输出数据。流是处理输入/输出的一个洁净的方法,它不需要代码理解键盘和网络的不同。Java中流的实现是基于java.io包定义的类层次结构的1.1 流的概念java.io包通过数据流、序列化和文件系统为用户提供一种完成I/O操作的输入输出流数据流是所有的数据通信通道流是字节或字符流的数据源或目的,用以隐藏数据传原创 2021-03-01 16:45:39 · 912 阅读 · 0 评论 -
Java异常处理
Java异常处理程序运行时发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程 序自生自灭,立刻退出终止。Scanner sc=new Scanner(System.in);String ss=sc.nextLine();int kk=Integer.parseInt(ss);System.out.println("用户输入数据为:"+kk); //用户输入abc /*则执行结果为: Exception in thread "main" java.lang.原创 2021-02-18 09:40:08 · 164 阅读 · 0 评论 -
接口
接口##接口,可以用于 规范实现接口的类中必须实现接口中抽象方法。接口可以理解为一种契约使用关键字interface定义接口public interface 会飞的 { public void 起飞(); //没有具体实现,也无法定义具体实现,这里是抽象方法 public void 巡航飞行();public void 降落(); }抽象类中的抽象方法不能省略abstract关键字,但是接口中的方法声明可以添加abstract,也可以不写接口不能直接使用,必须有对应的实现类publ原创 2021-01-21 19:34:44 · 59 阅读 · 0 评论 -
内部类笔记
内部类##一个类或者接口定义在另外一个类或者接口的内部public class A1{//外部类 class B1{}//内部类 interface C1{}//内部接口 }将一个类定义置入另一个类定义中,这就叫作“内部类”内部类之外的类称为外部类内部类的名称必须区别于它所在的外部类,和其它类之间没有要求//内部类的全名叫做[外部类名称$内部类名称] public class A1 { public class A1{} //语法报错 class B1{}原创 2021-01-21 19:34:02 · 42 阅读 · 0 评论 -
特殊关键字
特殊关键字包package是类或接口的容器什么是包包是类的组织方式,提供名空间和访问控制类似于文件系统的组织声明包中的类package语法:package 包名称;声明包要求是源代码文件的第一个语句程序中最多只能有一条package语句,没有包定义的源代码文件成为默认包中的一部分 :程序中如果有package语句,该语句必须是第一条语句(前面只能有注释或空行)包的作用包能将相关的源代码文件组织在一起包减少了名称冲突带来的问题可以使用package指明源文件中的类属于哪个具体的原创 2021-01-17 22:36:27 · 235 阅读 · 0 评论 -
面向对象
面向对象##面向对象概论面向对象的三大基本特征是:封装、继承、多态封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据继承是为了重用父类代码,同时为实现多态性作准备多态性是发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用赋值给超类对象引用 变量来实现动态方法调用。编程概述面向过程是一种自上而下的程序设计方法,主要思路专注于算法的实现过程式的特征是以函数为中心,用函数作为划分程序的基本单位;数据在过程式设计中处于从属的位置过程式原创 2021-01-17 22:33:31 · 363 阅读 · 0 评论 -
匿名类 接口 final关键字
匿名类 接口 final关键字今天学习了匿名类 接口 finall关键字的相关知识,做一个总结。匿名类:1.没有名字的子类对象。2.匿名类中,必须要包含的是类型中抽象方法的实现。3.匿名类是一次性的。几点区别:1.抽象类里有构造方法,抽象类不能直接创建对象。普通类有构造方法,普通类能创建对象。2.抽象类能承载抽象方法,普通类不能承载抽象方法。3.抽象类可以有普通属性,普通类有普通属性。** 1.方法重写过程不能改变返回值,不能改变方法名,不能改变参数列表,能改变访问控制(可以从小往大改原创 2020-11-23 19:22:43 · 114 阅读 · 0 评论 -
数组
##数组今天学习了数组的相关知识,整理了笔记数组是表示多个相同类型变量的集合(在一个数组中所存放的所有元素的类型必须一致),可以使用共同的名字引用它,属于复杂数据类型.Java数组是固定的不能扩展数组是存放在堆中的,所以在声明数组时,需要定义数组的长度,即在堆中开辟出一个空间【数组的长度一旦声明,不能修改;如果需要修改则需要自行编程实现,这里实际是新创建一个数组,长度是修改后的长度,也就是说替换之前的数组】数组的声明格式(1)类型[] 变量名(2)类型 变量名 []数组的赋值(1.)动态赋值原创 2020-11-12 18:42:46 · 64 阅读 · 0 评论