自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA学习内容记录

CAS 也叫比较并交换,它体现的是一种乐观锁的思想,在无锁的情况下保证了线程操作数据的原子性。在操作共享变量的时候使用自旋的方式,如果发现工作内存中的值和主内存中的值不一致,会自旋再次去主内存中拿取值到工作内存中,等主内存和工作内存中的值一致了,在进行修改操作。CAS底层调用了操作系统的方法。是多线程中的队列同步器。是一种锁机制,它是做为一个基础框架使用的,像ReentrantLock、Semaphore都是基于AQS实现的。AQS内部维护了一个先进先出的双向队列,队列中存储的排队的线程。

2023-07-24 11:39:24 277

原创 Spring 三种装配方式

什么是Spring自动装配自动装配是Spring满足bean依赖的一种方式spring会在上下文中自己寻找,并自动装配bean的属性在Spring中有三种装配的方式1、在xml中显示的配置2、在java中显示的配置3、隐式的自动装配bean(最常用的)搭配环境:一个人有两个宠物Cat类:package com.jie.autowired;public class Cat { public void cry(){ System.out.println("miao

2020-12-01 18:04:24 2519

原创 Spring 静态代理/动态代理

为什么要使用代理​ 打个比喻,明星为什么需要经纪人来代理他呢?因为明星的专职是唱歌或演戏,如果把除此以外的其他事情比如演出费用谈判等等都揽在身上,他会累死。这就是体现一个思想:专业分工,用面向对象术语说:就是职责分明。所以,代理类一般是做些除原始类核心功能以外的其他功能,比如权限 事务等等都要专门的代理来实现。​ 当我们的代码每个类代表一个主要功能,而不是将所有功能混在一个类中,那么代码无疑清晰有条理的,易于维护,比如我要修改权限,就不必打开原始类代码,直接修改权限代理类就可以了。就很少发生修改一个

2020-12-01 18:02:16 241

原创 Spring配置

Spring配置alias(别名)alias标签中有两个属性:name和alias,name的作用就是为哪个java bean对象配置别名,alias就是别名称创建User类package com.jie.ioc02;public class User { private String name; private int age; public String getName() { return name; } public void

2020-12-01 17:57:53 267

原创 Spring DI依赖注入的几种方式

构造注入使用有参构造方式(三种)都需要使用标签​ 第一种:使用下标(index)​ index=“0” 就是有参构造方法里面的第一个参数,以此类推<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2020-12-01 17:55:53 210

原创 Spring Ioc创建Bean对象的三种方式

IOC创建对象的方式首先我们创建一个User类:package com.jie.ioc01;public class User { private String name; private int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } public Stri

2020-12-01 17:52:25 463

原创 java数组反转

数组反转思路:将数组的第一位元素跟最后以为元素交换位置,第二次循环就用第二个元素跟倒数第二个元素交换位置,以此类推public class ArrayReversal { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6}; arrayReversal(arr); showArray(arr); } private static void arra

2020-11-25 20:02:45 212

原创 java ‘逢七过’

逢七过游戏数字有7或者能被7整除就是‘逢七过’,比如:17,72,14接下来我们输出100以内满足‘逢七过’条件的数字public class Test3 { /* 逢七过,输出100以内满足条件的数字 数字有7或者能被7整除就是‘逢七过’ */ public static void main(String[] args) { f1(); } public static void f1(){ fo

2020-11-25 19:38:44 3291

原创 java 斐波拉契数列

什么是斐波拉契数列?1,1,2,3,5,8,13…n观察数列可得,除了第一项和第二项,所有的数列的值都是前一项和前一项的前一项的和,根据这个规律我们就能求出n的值接下来我们使用两种方式求n的值第一种使用数组:public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); f1(sc.nextInt()); }

2020-11-25 19:31:58 293

原创 java List集合按照条件分组

如何对List集合中的元素按照某个特性进行分组,接下来我介绍两种方法首先我们创建一个Student类@Data //这个是lombok的注解,可省略get、set方法、toString方法这些public class Student { private String name; //姓名 private int age; //年龄 private String type; //分类依据}接下来我们我们创建几个Student的实例化对象,然后按照type属性进行分组,

2020-11-23 15:19:43 6497

原创 java String类

String类概述String 类代表字符串,Java 程序中的所有字符串文字(例如“aaa”)都被实现为此类的实例。也就是说,Java 程序 中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,使用的时候不需要导包!String类的特点字符串不可变,它们的值在创建后不能被更改虽然 String 的值是不可变的,但是它们可以被共享字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )String类的常用构造方法

2020-11-23 15:17:32 133

原创 java多线程 线程同步

什么叫做线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。反之就是不安全的。我们通过一个案例来演示线程安全问题:创建一个类来模拟卖火车票的过程,票数为100,开设三个窗口同时一起卖票,利用线程对象来模拟接下来我们模拟票:public class Ticket implements Runnable { //总票数 private int ticket = 1000

2020-11-21 16:52:57 239 2

原创 java数组定义和访问

什么是数组数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。数组定义格式第一种: 数据类型[] 数组名;int[] arr1;String[] arr2;double[] arr3;//...第二种:数据类型 数组名[];int arr1[];String arr2[];double arr3[];//...数组初始化的几种格式第一种:​ 数据类型[] 数组名 = new 数据类型[数组长度];​ 数据类型 数组名[] = new 数据类型[数组长度];in

2020-11-19 19:11:53 310

原创 java方法的定义和调用

方法的概述方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,方法必须先创建才能使用,方法创建后并不能直接运行,必须手动执行(main()方法除外),这个过程叫做方法的调用方法的定义和调用方法的定义格式权限修饰符 [static] void 方法名(){ //方法体 return 需要返回的数据,类型必须和返回值类型一致; //返回值为void的时候可以不写,或者写成 return;}权限修饰符有 public、default、protected、private

2020-11-19 14:53:37 331

原创 策略模式

策略模式前言:设计一款模拟鸭子游戏,在游戏中会出现各种各样的鸭子,这些鸭子会游泳戏水,会叫,接下来定义鸭子的超类——Duck,并让各种鸭子继承此超类Duck类public class Duck { //叫 public void quack(){ System.out.println("鸭子会嘎嘎嘎叫"); } //游泳 public void swim(){ System.out.println("鸭子会游泳");

2020-11-16 20:24:01 487

原创 mysql常用函数

单行函数分类字符函数​ 1、length() 获取参数值得字节个数,不同的字符集结果也就不同#utf8字符集下面字母占1个字节,汉字占3个字节select length('hello') #查询结果是5select length('你好啊') #查询结果是9 ​ 2、concat() 拼接字符串/* 格式:concat([要拼接的字段或者字符],...)*/select concat(last_name,'_',first_name) as '姓名' from emplo

2020-11-02 22:21:22 154

原创 单例设计模式

单例设计模式单例设计模式要求:一是某个类只能有一个实例:​ 构造器私有化二是它必须自行创建这个实例:​ 含有一个该类的静态变量来保存这个唯一的实例三是它必须自行向整个系统提供这个实例​ 对外提供获取该实例对象的方式:​ 直接暴露或者用静态变量的get方法获取常见的形式:​ 饿汉式:直接创建对象,不存在线程安全问题​ 直接实例化饿汉式(简洁直观)package com.jie.single;/** * 饿汉式: * 直接创建实例对象,不管你是否需要都会创建 * 1

2020-10-26 08:54:55 335 5

原创 java泛型

为什么有泛型?早期的Object类可以接受任意的对象类型,但是在实际使用中会有类型转换问题。也就存在了安全隐患class Demo02{ //早期我们使用Object表示任意类型 private Object object; public Object getObject(){ return this.object; } public void setObject(Object object){ this.object = o

2020-10-23 22:34:38 116

原创 java基础静态导入

java基础——静态导入在java中可以使用import导入和直接带前缀导入包里面的方法,如下例子里面的Math包里面的方法:import java.lang.Math; //import导入public class Demo { public static void main(String[] args) { System.out.println(Math.max(2,8)); System.out.println(java.lang.Math.max

2020-10-12 22:27:52 261

原创 Java基础Iterator迭代器

Java基础——Iterator的使用iterator用法主要是对对象进行迭代,然后循环出对象属性,下面我们看看如何使用吧:public static void main(String[] args) { ArrayList arr = new ArrayList(); arr.add("AA"); arr.add("BB"); arr.add("CC"); arr.add("DD"); arr.add("E

2020-10-12 18:21:48 183

原创 java基础变量的交换

java基础——变量的交换说到变量的交换我们第一时间想到的就是使用第三方的变量来进行交换,如下:public static void main(String[] args) { int a = 40; int b = 60; int c; c= a; //c = 40 a = b; // a = 60 b = c; // b = 40 }上面代码使用第三方变量就把a和b的值交换过来了

2020-10-06 21:56:54 1447

原创 Java基础数据类型的转换

Java基础——数据类型的转换在Java中数据类型转换可分为2种:自动转换、强制转换。1、自动类型转换(隐式):特点:代码不需要进行特殊处理,自动完成。规则:数据范围从大到小(Char→Byte→short→int→long—›float→double)。一下这些都发生了自动类型转换:public class demo01 { public static void main(String[] args) { /** * 只要右边的变量类型的范围比左边的

2020-10-02 16:47:09 335

原创 Java基础变量的注意事项

java基础——变量的使用

2020-09-27 19:56:22 190 1

空空如也

空空如也

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

TA关注的人

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