自定义博客皮肤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 2506

原创 spring框架aop ioc总结

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

2021-06-06 17:51:53 117

原创 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 10060

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

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

2021-06-03 17:07:50 164

原创 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 998

原创 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 157

原创 动态代理的面试总结

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

2021-05-23 11:04:09 160

原创 动态代理的基本使用

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

2021-05-23 10:32:00 134

原创 初步使用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 196 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 457 2

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

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

2021-05-12 17:38:01 151

原创 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 74

原创 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 48

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

1、实体类Studentpublic 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 56

原创 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 70

原创 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 105

原创 获取工具类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 123

原创 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 76

原创 死锁

死锁 **当两个线程需要同时锁住两个对象,刚好交叉锁住就会出现死锁。 例如线程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 55

原创 多线程启动的三方式

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 245

空空如也

空空如也

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

TA关注的人

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