自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 常用集合关系图

常用集合的之间的关系和特点:

2021-06-28 12:25:03 2562

原创 spring框架aop ioc总结

spring框架核心技术ioc、aop技术的整合

2021-06-06 17:51:53 142

原创 abjectj--@AfterReturning讲解

1、@AfterReturning有两个参value、returning,vlue=excution()标明切片的切入位置,returning切入的目标类的返回值。@AfterReturning注解的切面方法是在目标方法执行后执行。 doOther方法是接口的实现方法,该方法新建并且返回一个对象student public Student doOther(String name, String age) { Student s = new Student(); s.s

2021-06-06 13:21:43 10130

原创 javaee之深入浅出理解static和this关键字

深入浅出理解关键字static和this 1、先来了解java在运行的时候jvm中的数据存储: 方法区:存放的是编译好的class文件(java文件编译而来); 堆内存:存放实例方法、实例变量,对象等; 栈:存放运行的代码; 2、this关键字指向当前运行状态的对象,存在于堆内存中。被static关键字修饰的变量、方法只能存在于方法区中,与堆内存没有关联。实例变量、方法只能被对象调用,静态变量方法只能被类调用。 3、举个例子: public class Chinese { public String na

2021-06-03 17:07:50 188

原创 MySql查询关联ID为逗号隔开的字符串的数据

MySql查询关联ID为逗号隔开的字符串的数据 1、一种产品的规格不唯一,查看表 2、在规格表中存放对应的规格数据,应该如何查询显示呢?在使用FIND_SET_IN函数的时候先尝试IN函数。例如图,利用in函数,传入每一个ID就能查询出来,但是我们在开发过程中不可能这样传值,从PRODUCT表中只存在字符串,该如查询呢? 3、利用FIND_IN_SET(在规格表中的ID,传入的参数),这样即使传入的是一个字符串也都没问题。 4、组合起来查询,使用GROUP_CONCAT函数将查询的数据和ID的字符串对

2021-06-03 15:21:35 1015

原创 spring框架之aspectj实现aop

1、先导入aspectj依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> <dependency>

2021-05-23 16:51:45 164

原创 动态代理的面试总结

1、什么是动态代理 答:动态代理分为两种实现方式。第一种使用jdk中的Proxy、Method、InvocationHandle接口来实现。第二种就是cglib动态代理,也就是第三方工具库。继承目标类的子类作为代理对象。 2、怎么理解面向切面编程 答:在分析项目的时候,找出哪些是切面。分析找出合理的执行切面代码的时间和合理的运行位置。 3、动态代理的作用 1)减少代码的重复 2)不修改代码增加功能,符合开闭原则 3)降低耦合,减少业务代码和非业务代码的关系 4)更加注重业务代码的实现 ...

2021-05-23 11:04:09 168

原创 动态代理的基本使用

动态代理的基本了解 1、如果一个业务类中的每一个方法在执行的时候,给它加上日志、记录时间等与业务逻辑无关的方法,可以怎么做呢?我们可以写一个代理类,里面包含了目标类和日志方法。当我们在执行业务类里面的方法时,jvm会自动帮我们在该方法前或者后执行这些与业务逻辑不相关的方法。这个时候就会涉及到动态代理,动态代理会帮助我们去把事务和业务在运行过程中结合起来。例子: 1.1、编写业务接口和实现类。 service接口 public interface DoService { public void doS

2021-05-23 10:32:00 144

原创 初步使用spring框架

1、创建好maven项目后,准备使用阶段,先加入spring-context依赖,application.xml配置文件 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.1.RELEASE</version> &l

2021-05-18 15:04:28 218 1

原创 spring框架之自动注入

1、引用类型自动注入。我们可以写一个property来注入引用的类,如果引用的类多了,就会造成代码的冗余。因此我们用自动注入来替代手动注入。 1.1、通过byName来自动注入。在bean便签中加入autowrie=“byName”。 原理:当在bean便签中碰到byName标签的时候,会寻找id值==属性名的bean,寻找到了,就会自动注入到该bean中。 <bean id="mystudent" class="com.spring05.Student" autowire="byName"&

2021-05-18 14:54:09 526 2

原创 碰到端口被占用怎么办?

1、查看端口是否被占用netstat -ano|findstr 8890 2、杀死进程netstat -ano|findstr 8890

2021-05-12 17:38:01 182

原创 spring框架--DI技术实现ioc--构造注入

1、student类 public class Student { private String name; private int age; private School school; public Student(String myname, int myage, School myschool) { this.name = myname; this.age = myage; this.school = myschool;

2021-05-12 10:54:43 81

原创 spring框架--DI技术实现ioc--引用注入

通过spring框架能够在对象中注入一个对象,并且给这两个对象设置属性值 1、School类 public class School { private String name; private String address; public void setName(String name) { this.name = name; } public void setAddress(String address) { this.addre

2021-05-11 23:33:24 51

原创 spring框架--DI技术实现ioc--set注入

1、实体类Student public class Student { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toSt

2021-05-11 17:45:50 65

原创 spring框架--DI技术实现ioc

1、在依赖包中加入spring库spring-context <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.1.RELEASE</version> </dependency> 2、在resource

2021-05-11 12:16:56 80

原创 jvm虚拟机深入了解多态

什么是多态及多态的应用了解 多态可以分为向上转型和向下转型,程序分为编译器和运行期。两则呈现不同的状态,称为多态。例如人、中国人、朝鲜人三个类。 public class Person { public void say(){ System.out.println("人说话!"); } } public class Chinese extends Person { @Override public void say() { System.ou

2021-05-07 19:13:42 130

原创 获取工具类properties的方法

获取工具类properties的方法 1、通过FileReader获取,这个方法的绝对路径是当前project的根目录。 FileReader fr = new FileReader("classinfo.properties"); Properties properties = new Properties(); properties.load(fr); 2、通过线程的类加载器获取到当前类的根路径(src)。 String path = Thread.currentThread().getContext

2021-04-28 11:39:07 133

原创 javaee-反射机制技术

反射机制技术 反射机制就是可以操作字节码文件(class文件)。 例如:Class c1 = Class.forName(“java.lang.String”); 以上的这行代码就能够把String类装载到了java虚拟机中。相对于直接创建该类,反射机制可以不修改代码就可以获取到该类的字节码,更加灵活,符合“开闭原则”。 classinfo.properties文件 className = java.util.Date 通过反射机制获取该类的字节码: FileReader fr = new FileRead

2021-04-26 21:31:01 83

原创 死锁

死锁 **当两个线程需要同时锁住两个对象,刚好交叉锁住就会出现死锁。 例如线程t1需要锁住o1,o2,线程t2也需要锁住o1,o2,但是线程t1先锁住o1,再锁o2,同时线程t2先锁住02,再锁o1。由于t1在锁o2的时候,o2已经被锁住了,需要等待。t2,也在等待o1,造成互相锁死的情况。** public class DeadLock { public static void main(String[] args) { Object o1 = new Object();

2021-04-25 12:05:24 60

原创 多线程启动的三方式

1、可以直接调用java类Thread,并重写里面的run()方法,但是这并没有在进程中开辟一个新的空间。就算调用了run方法,也只是在主线程下压栈。调用start()方法的时候,进程会短暂开辟一个新的空间作为新的支栈,开辟完成之后就会销毁,并且调动机制会自动执行run方法,代码继续执行。 public static void main (String[] args){ Mythread m = new Mythread(); m.start(); } class Mythread extends Th

2021-04-24 17:41:53 253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除