自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AOP面向切面编程

AOP底层使用动态代理:关于代理模式AOP(术语)连接点:类里面的方法可以被增强,这些方法称为连接点切入点:实际被增强的方法称为切入点通知(增强):实际增强的逻辑部分称为通知通知有五种类型:前置通知、后置通知、环绕通知、异常通知、最终通知切面:把通知应用到切入点的过程AOP操作(准备)Spring框架一般都是基于AspectJ实现AOP操作1.什么是AspectJ?AspectJ不是Spring组成部分,是一个独立的AOP框架,一般和Spring一起使用,进行AOP操作2.基于As

2020-10-23 16:56:47 369

原创 代理模式

代理模式代理模式中,代理类与主体类实现同样的接口,代理类持有实体类的引用,并接受客户端对代理类中实体引用的外部注入,并代理实体类的功能。注:描述中的这种外部注入形式有个专有技术名词:依赖注入静态代理模式角色抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,一般会有一些附属操作客户:访问代理对象的角色优点可以使真实角色更加集中本身的业务,不用去关注一些公共的业务公共业务交给代理角色,实现业务的分工公共业务发生扩展时,方便集中管理缺点每多

2020-10-22 16:59:36 379

原创 JVM相关概念入门

一、JVM位置:二、JVM体系结构:垃圾回收器在执行引擎中,JVM调优一般都是在方法区和堆中;三、类加载器:作用:加载class文件;1、虚拟机自带的加载器;2、启动类(根)加载器;3、扩展类加载器;4、应用程序加载器;双亲委派机制:1、如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类加载器去执行;2、如果父类加载器还存在其父类加载器,则会进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器。3、如果父类加载器可以完成类加载任务,就成功返回,

2020-10-13 11:41:12 209

原创 查看当前虚拟机分配的内存

public class MemoryDemo { public static void main(String[] args) { //返回虚拟机使用的最大内存 long max = Runtime.getRuntime().maxMemory();//字节 1024*1024 //返回JVM的初始化总内存 long total = Runtime.getRuntime().totalMemory(); Syste

2020-10-13 11:38:59 2396

原创 Java中的math类比较

当 参数 > 0 时:Math.floor = 偏小值,等于个位数Math.round = 四舍五入的值Math.ceil = 偏大值,等于个位数+1当参数 < 0 时:Math.floor = 偏小值,个位数+1Math.round = 负的四舍五入Math.ceil = 偏大值,等于个位数...

2020-09-29 11:21:14 363

原创 整合Druid数据源

1、导入相关依赖:2、在yml中配置引入数据源,使默认数据源变为Druid:3、导入log4j日志监控依赖:4、在config包中创建Druid配置文件:配置完之后可在本地服务器下查看Druid数据源的监控日志...

2020-09-25 11:32:51 142

原创 整合MyBatis

1、引入相关依赖:2、在properties中配置数据库连接:3、进行简单测试,看是否成功连接数据库:4、创建pojo包,在包中创建简单User对象,方便之后测试:5、创建mapper包,在包中创建接口类:6、在资源目录下创建mapper包,在包中创建Mybatis配置文件xml:7、在properties中加入整合Mybatis配置:8、创建user控制器,user表进行CRUD操作:...

2020-09-25 11:32:35 85

原创 整合JDBC使用(数据库)

1、引入依赖:2、在yml中配置数据库链接设置:主要数据:用户名密码url本地服务器链接连接驱动3、在Test中测试连接数据库,进行数据库连接:4、创建JDBC控制器,进行数据库数据的CRUD:利用jdbc模板对数据进行增删改查!...

2020-09-25 11:32:15 123

原创 使用Java配置spring

完全不使用spring的xml配置,全部交由Java完成!首先创建一个 实例User类:public class User { private String name; public String getName() { return name; } @Value("柯基")//属性注入值 public void setName(String name) { this.name = name; } @Overri

2020-09-24 17:13:46 182

原创 spring的注解开发

在xml中导入约束,并插入组件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"//约束 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

2020-09-24 16:47:05 179

原创 Spring中Bean的自动装配

自动装配是spring满足bean依赖的一种方式,spring会自动寻找给bean装配属性。在spring中有三种装配方式:1)在xml中显示的配置;2)在Java中显示的配置;3)隐式的自动装配bean;(重点)1、使用autowire自动装配,autowire属性常用两个值:byName(根据属性名称注入):`<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or

2020-09-23 18:17:27 234

原创 Bean的作用域

1、单例模式(spring默认机制):<bean id="address" class="com.keji.pojo.Address" c:address="广州" scope="singleton"/>//单例模式2、原型模式:每次从容器中获取对象的时候,都会产生一个新的对象<bean id="address" class="com.keji.pojo.Address" c:address="广州" scope="prototype"/>//原型模式3、其余的reque

2020-09-23 11:43:03 152

原创 Spring中的DI:依赖注入

DI:依赖注入,就是注入属性:依赖:bean对象的创建依赖于容器;注入:bean对象的所有属性由容器来注入;第一种:使用set方法进行注入测试实例:首先创建Student和Address类:package com.keji.pojo;import java.util.*;public class Student { private String name; private Address address;//引用类型 private String[] books;

2020-09-22 20:43:15 273

原创 Spring配置

1、别名:<bean id="user" class="com.keji.pojo.User"> <constructor-arg name="name" value="柯基学Java"></constructor-arg> </bean> <alias name="user" alias="akali"></alias>//别名2、Bean的配置:<!-- id:是bean的唯一

2020-09-22 17:50:12 132

原创 Spring中IOC创建对象的方式

1、使用无参构造方式,默认的2、使用有参构造:首先创建一个User类:public class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { thi

2020-09-22 16:58:20 219

原创 ICO操作Bean管理(基于xml)

ICO操作Bean管理(基于xml):1、在Spring配置文件中,使用bean标签,标签里添加对应属性就可以实现对象创建bean标签的属性:*id属性:唯一标识*class属性:类全路径(包类路径)2、创建对象时,默认执行无参数构造方法完成对象创建测试实例:public class User { private String name; public String getName() { return name; } public void

2020-09-22 15:31:04 176

原创 Spring中IOC控制反转概念

原本由程序主动创建对象,主动权在程序员手上:public interface UserDao { void getUser();}`public class UserDaoMysqlIMp implements UserDao{ public void getUser() { System.out.println("Mysql创建用户"); }}``public interface UserService { void getUser();}

2020-09-22 14:48:22 177

原创 Spring简介

1、Spring是轻量级的开源的免费J2EE框架;2、Spring可以解决企业应用开发的复杂性;3、Spring有两个核心部分IOC(控制反转)和AOP(面向切面编程):1)IOC:把创建对象过程交给spring进行管理;2)AOP:不修改源代码进行功能增强;4、spring特点:1)方便解耦,简化开发;2)AOP编程支持;3)方便程序测试;4)方便和其他框架进行整合;5)方便进行事务操作;6)降低API开发难度Spring的理念:使现有的技术更加容易使用spring官网spri

2020-09-22 11:46:50 199

原创 Java中类的加载机制解析

类的加载过程:1、加载到内存中,会产生一个class对象;2、链接,链接结束后,对象中的参数为默认值;3、对象中的参数初始化;测试实例:package com.keji.oop;public class ClassLoaderTest { public static void main(String[] args) throws ClassNotFoundException { //获得系统类加载器 ClassLoader systemClassL

2020-09-18 17:17:16 189

原创 Java中的注解Annotation和自定义注解

内置注解:@Override:表示重写@Deprecated:不是不推荐使用@SuppressWarning:需要添加一个参数才能使用,用来抑制编译时的警告信息元注解:负责注解其他注解,Java中定义了四个类型的元注解@Target:描述注解的使用范围@Retention:表示需要在什么级别保存该注释信息,即注解在什么地方使用才有效@Document:说明该注解将被包含在javadoc中@Inherited:说明子类可以继承父类的中的注解自定义注解:实例://自定义注解public

2020-09-18 14:54:01 154

原创 线程中的生产者消费者问题

这是一个线程同步问题,生产者消费者共享一个资源,并且生产者消费者之间相互依赖,互为条件:对于生产者,没有生产产品之前,需通知消费者等待,而生产产品之后需要马上通知消费者消费;对于消费者,在消费之后,需要通知生产者已经结束消费,需要生产新的产品提供消费;在生产者消费者问题中,仅有synchronized是不够的;synchronized可阻止并发更新同一个共享资源,实现了同步;synchronized不能用来实现不同线程之间的消息传递(通信);解决方式一:管程法(并发协作模型)生产者:负责生产数

2020-09-17 17:35:37 445

原创 线程中的死锁DeadLock

死锁:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。简言之为多个进程互相占着对方需要的资源,不肯释放,形成僵持。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系只需破坏其中一个或多个条

2020-09-17 15:17:59 300

原创 线程同步安全synchronized

同步方法包括两种用法:synchronized方法和synchronized方法块同步方法:public synchronized void method(int args){ }synchronized方法控制对“对象”的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行就独占该锁,直到该方法返回才能释放锁,后面阻塞的线程才能获得这个锁,继续执行缺点:一个大的方法申明为synchronized将会影响效率synchroni

2020-09-17 11:43:19 126

原创 多线程中的Join

线程中join(强制执行):当前线程执行完毕之后,才会执行后面程序,其他线程阻塞;实例:public class ThreadJoin implements Runnable{ @Override public void run() { for (int i = 1; i < 1000; i++) { System.out.println("Join..."+i+"运行中"); } } public stat

2020-09-16 18:06:43 2623 2

原创 线程让步yield实现

线程中yield(让步):让当前线程暂停执行(重新排队,进入就绪状态)进入等待,把资源让给其他同级别线程,让后面线程先执行;由CPU重新调度,让步不一定成功,需看CPU心情;实例://线程让步public class ThreadYield implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()+"开始执行!");

2020-09-16 17:50:23 198

原创 多线程中的延时sleep

实例1:public class TheadSleep implements Runnable{ @Override public void run() { int i = 10; while (true){ if (i <= 0){ break; } //模拟延时 try { Thread.

2020-09-16 17:38:42 889

原创 Java中线程终止实现

实例://线程正常停止://1、利用次数停止,不建议死循环//2、使用标志位flag//不要使用stop或者destroypublic class ThreadStop implements Runnable{ private boolean flag = true;//创建标志位 @Override public void run() { int i =0; while(flag){ System.out.prin

2020-09-16 17:16:50 99

原创 多线程中的lamda表达式

实例:public class Lamda { //3、静态内部类 static class Like2 implements Ilike{ @Override public void lamda() { System.out.println("静态内部类lamda2"); } } public static void main(String[] args) { Ilike like

2020-09-16 16:13:52 145

原创 多线程中实现Runnable

1、定义MyRunnable类实现Runnable接口;2、实现run()方法,编写线程执行体;3、创建线程对象,调用start()方法启动线程;实例: public class MyThreadImp implements Runnable{ @Override public void run() { for (int i = 0; i < 200; i++) { System.out.println("run方法已启动!"+i);

2020-09-16 10:34:32 339

原创 多线程中实现继承Thread类

1、自定义线程类继承Thread类:2、重写run()方法,编写线程执行体:3、创建线程对象,调用start()方法启动线程:实例: public class MyThread extends Thread { @Override public void run() { //run()方法线程体 for (int i = 0; i < 200; i++) { System.out.println("run方法线程已启动!"

2020-09-16 10:21:19 299

原创 Java中的线程、进程、多线程的概念

1、线程(Thread):线程是进程的基本执行单元,一个进程的所有任务都在线程中执行进程要想执行任务,必须得有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或 UI 线程2、进程:进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存3、多线程的意义优点:能适当提高程序的执行效率能适当提高资源的利用率(CPU,内存)线程上的任务执行完成后,线程会自动销毁缺点:开启线程需要占用一定的内存空间(默认情况下,每一个线

2020-09-16 09:47:35 339

原创 Java中的异常机制实现

异常实例: public class Test { public static void main(String[] args) { int a = 1; int b = 0; //如果要捕获多个异常,捕获等级必须从小到大 //Error < Exception < Throwable try { System.out.println(a / b); } catch

2020-09-15 16:24:31 119

原创 Java中的接口实现

接口最能体现面向对象精髓->对对象的抽象,接口是一种规范,定义的是一组规则。实例:接口中的所有方法都是抽象的:public interface UserService { void add(); void delete(); void update(); void query();}实现接口的类用implements,实现了接口的类就必须重写接口中的方法:public class UserServiceImp implements UserServ

2020-09-15 12:00:05 376

原创 Java中的abstract抽象类

abstract抽象类public abstract class Fish {//抽象方法只有方法名,没有具体实现方法public abstract void swim();}抽象类的方法只能由子类实现,除非子类也是抽象类:public class Shark extends Fish{ @Override public void swim() { }}抽象类的特点:1、不能创建实例化对象(不能new这个类),只能由子类实现;2、抽象类中可以有普通方法,但是抽象方法必须在抽象

2020-09-15 11:40:21 89

原创 Java中的instanceof

instanceof: 引用类型,判断一个对象是什么类型实例:分别创建3个类为Cat、Dog、Animal:public class Cat extends Animal{}public class Dog extends Animal{}public class Animal {}在主方法中进行测试:public class Test {public static void main(String[] args) { //Object > Animal >

2020-09-15 11:00:30 97

原创 Java中的多态

1、多态是方法的多态;2、父类和子类必须有联系才能转换类型;3、存在条件:继承关系,方法重写,父类引用指向子类对象(Father f =new Son();)

2020-09-15 10:45:47 75

原创 Java中的重写实现

1、重写需要继承父类,子类重写父类的方法2、方法名必须相同;3、参数列表也必须相同;4、修饰符:public>protected>Default>private,范围可以扩大但是不能缩小;5、抛出的异常,可以被缩小但不能扩大使用非静态方法重写:当使用静态方法时:静态方法只能被继承,不能被重写,如果子类有和父类相同的静态方法,那么父类的静态方法将会被隐藏,对于子类不可见,也就是说,子类和父类中相同的静态方法是没有关系的方法,他们的行为不具有多态性。但是父类的静态方法可以

2020-09-15 10:34:24 707

原创 继承中super

super注意点:1、super调用父类的构造方法,子类在调用时必须在构造方法的第一个;2、super只能出现在子类的构造方法或者构造方法中;3、super和this不能同时调用构造方法;super和this的区别:对象不同: super:调用的是父类的对象 this:调用的是本身的对象 前提不同: super:只能在继承条件下使用 this:不用继承也能使用 构造方法: super():调用父类的构造 this():调用本类的构造...

2020-09-14 17:37:19 60

原创 Java中的封装实现

封装的好处:1、提高程序安全性,保护数据;2、隐藏代码实现细节;3、统一接口;4、提高系统可维护性;实例:创建了一个对象,并创建对象属性通过调用set和get方法给属性赋值结果:...

2020-09-14 17:15:38 179

原创 稀疏数组的实现

1、创建一个原始数组,类似棋盘:2、创建稀疏数组:3、还原原始数组:

2020-09-14 15:51:28 80

空空如也

空空如也

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

TA关注的人

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