自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java volatile关键字介绍

Java中的`volatile`是一种关键字,用于保证多个线程之间对共享变量的可见性。当一个变量被声明为`volatile`时,对这个变量的读取和写入操作都会直接从主内存中读取和写入,而不是从线程本地缓存中读取和写入。这个写屏障会强制将写入操作刷新到主内存中,同时会使其他线程中的本地缓存失效。同样地,当一个线程对。内存屏障是一种硬件或软件机制,用于限制编译器和处理器对内存访问的优化,以确保对内存操作的顺序和可见性。这个读屏障会强制从主内存中读取变量的值,而不是从线程本地缓存中读取。具体来说,当一个线程对。

2023-04-06 17:29:05 743

原创 Java全局变量和局部变量的区别

java中的成员变量和局部变量的区别。

2023-02-09 14:46:15 1059

原创 LeetCode 209. 长度最小的子数组

初始化:定义参数:两个指针,分别是slow,fast,初始都为0。sum:连续子数组值的和,初始值为0。min:最小连续子数组的长度,也是最终的返回值,初始值设置为Integer.MAX_VALE。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。输入:target = 7, nums = [2,3,1,2,4,3]解释:子数组 [4,3] 是该条件下的长度最小的子数组。

2023-02-01 19:58:18 1098

原创 Hashtable为什么效率很低

Hashtable最大的问题是,效率极低,假设我们有两个线程t1,t2同时要执行put操作,即使t1和t2所放的位置不同,t2也要等t1put完毕才可以进行。如果你要使用线程安全的map,建议你直接使用JUC包下的ConcurrentHashMap,这个对HashMap做了进一步的优化,效率比较高。它的具体原理后续再记录。Hashtable实现了Map接口,具有Map接口的特性,存储key,value键值对。Hashtable直接在put和get方法上面加synchronized关键字来实现线程安全。

2022-11-28 17:58:30 592

原创 Java局部变量-成员变量-静态变量

Java变量类型

2022-10-26 00:49:51 608

原创 Java数据类型

Java数据类型

2022-10-26 00:04:00 177

原创 用Thread和Runable两种方法模拟多线程抢票练习

实现Runable接口多线程抢票。继承Thread实现多线程抢票。

2022-10-22 20:36:14 210

原创 jvm类加载过程

类加载过程

2022-10-21 16:08:56 128

原创 JVM内存模型

JVM模型的简单介绍

2022-10-20 20:27:12 323

原创 Java文件为什么可以跨平台执行

JVM(Java虚拟机)是Java代码可以跨平台的关键。在程序运行前,Java源代码(.java文件)需要经过编译器编译成字节码文件(.class)。在程序运行时,JVM负责将字节码文件翻译成特定平台下的机器码并运行,因此,只要在不同的平台安装对应的JVM,就可以运行字节码文件。同一份Java源代码在不同的平台上运行,它不需要做任何的改变,并且只需要编译一次。而编译好的字节码文件,使用过JVM这个中间桥梁实现跨平台的,JVM是与平台相关的软件,它能将统一的字节码翻译成该平台的机器码。...

2022-08-12 19:01:27 1046

原创 Java权限访问修饰符

Java中访问权限修饰符有public、private、default、protected,什么也不加就是default。

2022-08-12 18:50:56 180

原创 python3.8+geopands依赖包(附带资源)

之前不小心将geopands更新了,导致环境无法正常运行。搞了一晚上,试了conda历史版本回溯,依然报错无法导入fiona包,想不明白为什么回溯了还有版本冲突。没办法只能新建了一个新的环境,重新装一些,装的过程中发现一个问题,很多教程都给了geopands依赖的fiona、GDAL版本,但问题是去https://www.lfd.uci.edu/~gohlke/pythonlibs/网站照着教程下载时,发现很多教程里的版本都没了,导致一直在试坑。每当我想去网上找一套geopands对应的依赖包时,搜索

2022-05-05 11:13:30 530

原创 springboot自定义starter无法导入Service问题

层级关系——springboot-customer-starter (自定义starter)————springboot-mystarter (启动器)————springboot-mystarter-autoconfiguration(自动配置)解决办法:将springboot-mystarter-autoconfiguration中的<build> <plugins> <plugin>

2022-03-25 21:04:32 991

原创 ssm框架整合(含ssm配置)实现crud

SSM-CRUD介绍ssm:SpringMVC+Spring+MyBatisCRUD:Create(创建)、Retrieve(查询)、Update(更新)、Delete(删除)功能点CRUD技术点基础框架-ssm:SpringMVC+Spring+MyBatis数据库-MySQL前端框架-bootstrap依赖管理-maven搭建环境项目架构图1、创建数据库和表# 创建ssm_crud数据库CREATE DATABASE ssm_crud;# 使用数据库USE

2022-03-08 13:56:20 2307 4

原创 Tomcat & Servlet & Request

Tomcat & ServletWeb相关概念回顾软件架构C/S:客户端/服务器端B/S:浏览器/服务器端资源分类静态资源:所有用户访问后,得到的结果都是一样的,静态资源可以被浏览器直接解析,如:html、css、js动态资源:每个用户访问相同资源后,得到的结果可能不一样。动态资源被访问后,需要先转换为静态资源,再返回给浏览器。如:servlet/jsp、php、asp…网络通信三要素IP:计算机在网络上的唯一标识。端口:应用程序在计算机中的唯一标识。0

2021-08-29 19:24:26 273

原创 Bootstrap入门

BootstrapBootstrap下载以及使用文档概念Bootstarp:一个前端开发的框架框架:一个半成品软件,开发人员可以在框架基础上,再进行开发,简化编码。优点定义了很多的css样式和js插件。开发人员可以直接使用这些样式和插件得到丰富的页面效果。响应式布局,同一套页面可以兼容不同分辨率的设备。快速入门下载Bootstrap在页面中将这三个文件夹赋值创建html页面,引入必要的资源文件hello world.html<!DOCTYPE html>&lt

2021-08-24 21:01:28 85

原创 JavaScript学习

JavaScript概念:JavaScript是一种客户端脚本语言运行在客户端浏览器中,每个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接可以被浏览器解析执行功能:可以增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)ECMAScriptECMAScript是客户端脚本语言的标准基本语法与html结合方式内部J

2021-08-24 16:30:43 452

原创 CSS入门学习

CSS概念css:页面美化和布局控制概念:Cascading Style Sheets 层叠样式表优点:功能强大将内容展示和样式控制分离降低耦合度。解耦让分工协作更容易提高开发效率使用CSS的使用:CSS与HTML结合方式内联样式内部样式外部样式内联样式在标签内使用style属性指定css代码<div style="color:red">hello world</div>在head标签内,定义style标签,style标签的内容就是

2021-08-22 15:26:59 122

原创 HTML入门学习

HTMLweb概念概述JavaWeb:使用Java语言开发基于互联网的项目软件架构C/S:Client/Server 客户端/服务器端在用户本地有一个客户端程序,在远程有一个服务端程序如:qq,腾讯…优点:用户体验好缺点:开发,安装,部署,维护麻烦B/S:Browser/Server 浏览器/服务器端只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务端程序优点:开发,安装,部署,维护简单缺点:如果应用过大,用户的体验可能会受到影响,对硬件要求过高B/S架构详

2021-08-22 15:26:19 284

原创 Spring JDBC

Spring JDBC定义Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发。使用方法导入jar包数据库连接池依赖包:mchange-commons-java-0.2.19.jar数据库驱动包:mysql-connector-java-8.0.26.jar数据库连接池druid包:druid-1.2.6.jarspringjdbc包:spring-beans-5.2.16.RELEASE.jarspring-core-5.2.1

2021-08-17 21:03:30 294

翻译 Java c3p0&&Druid数据库连接池使用方法

数据库连接池概念数据库连接池其实就是一个容器(集合),存放数据库连接对象的容器当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现方式标准的接口:DataSource javax.sql包下的获取连接:getConnection()归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connecti

2021-08-17 21:02:32 122

翻译 JDBC操作

JDBC概念概念:JDBC,Java DataBase connectivity,Java 数据库连接,Java语言操作数据库。JDBC本质:其实是官方(sun公司)定义了一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动的jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。快速入门使用步骤下载jar包:https://blog.csdn.net/weixin_42116701/article/details/11312929

2021-08-16 17:08:16 67

原创 MySQL多表查询&事务

多表查询建表#创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20));INSERT INTO dept(name) VALUE('武器部'),('执行部'),('纪律部');INSERT INTO dept(name) VALUE ('后勤部');#创建员工表CREATE TABLE emp(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(30

2021-08-15 21:38:14 133

原创 SQL 数据库范式

数据库设计的范式概念设计数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。要遵循后边的范式要求,必须先遵循前边的所有范式要求目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称完美范式)学习第一范式(1NF):每一列都是不可分割的原子数据项问题1:存在非常严重的数据冗余(重复),姓名、系名、系主任

2021-08-12 21:39:54 240

原创 数据库表间关系

多表之间的关系分类与实现方式一对一(了解)如:人和身份证分析:一个人只有一个身份证,一个身份证只能对应一个人实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键一对多(多对一)*如:部门和员工分析:一个部门有多个员工,一个员工只能对应一个部门实现方式:在多的一方建立外键,指向一的一方的主键多对多如:学生和课程分析:一个学生可以选择很多门课程,一门课程可以被很多学生选择实现方式:多对多关系实现需要借助第三张中间表,中间表至少包含两个字段,这两个字段作为该表的

2021-08-12 21:39:16 118

原创 SQL 级联操作

级联操作级联更新两张表添加级联更新操作后,主表键值被修改时,添加外键的表中的值也会随之修改。添加级联更新,外键名是自定义的#添加级联更新ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (表中添加外键的列名) REFERENCES 主表(主表列) ON UPDATE CASCADE;#添加级联更新ALTER TABLE emp ADD CONSTRAINT emp_dep FOREIGN KEY (dep_id) REFERENCES dep(i

2021-08-12 21:38:23 462

原创 SQL添加主键、外键以及其它约束

约束概念约束是对表中的数据进行限定,保证数据的正确性、有效性和完整性。约束分类主键约束:primary key非空约束:not null唯一约束:unique外键约束:foreign key非空约束:not null创建表时添加约束CREATE TABLE stu(id int,name VARCHAR(20) NOT NULL);创建完表后,添加非空约束#创建完表后,添加非空约束ALTER TABLE stu MODIFY name VARCHAR(20)

2021-08-12 21:37:44 8779

原创 SQL 查询

DQL语法select 字段列表from 表名列表where 条件列表groub by 分组字段having 分组之后的条件order by 排序limit 分页限定基础查询多个字段的查询select 字段1,字段2,… from 表名;注意:如果查询所有字段,则可以使用*来替代字段列表去除重复使用 distinct 关键字可以去除重复,如果对多个字段使用,则必须完全一致才可以去重计算列一般可以使用四则运算计算一些列的值。一般只会进行数值型的计算

2021-08-12 21:36:39 350

原创 SQL 数据库和表操作

SQL分类DDL(Data Definition Language)数据定义语言用来定义数据库对象:数据库、表、列等。关键字:create,drop,alter等DML(Data Manipulation Language)数据操作语言用来对数据库中表的数据进行增删改查。关键字:insert、delete、update等DQL(Data Query Language)数据查询语言用来查询数据库中表的数据。关键字:select,where等DCL(Data Control Lan

2021-08-12 21:35:24 195

原创 JavaWeb 注解学习

注解概念注解:用特定标识符说明程序,给计算机看的注释:用文字描述程序,给程序员看的定义注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类:编写文档:通过代码里标识的注解生成文档(生成文档doc文档)代码分析:通过代码里标识的注解对代码进行分析(使用反射)编译检查:通过代码里标识的注解让编译器能够实现基本的

2021-08-10 21:23:19 279

原创 JavaWeb 反射再学习

反射反射:框架设计的灵魂,需重点掌握框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其它对象,这就是反射机制优点可以在程序的运行过程中,操作这些对象可以解耦,提高程序的可扩展性获取Class对象的方式(字节码文件对象)源代码阶段:Class.forName(“包名\类名”);将字节码文件加载进内存,返回Class对象Class类对象阶段:通过 类名.class,来获取Class对象运行时阶段:对象.getClass();返

2021-08-10 21:22:34 73

原创 JavaWeb junit单元测试

Junit单元测试测试分类黑盒测试:不需要写代码,给定输入值,检查程序是否可以输出期望值白盒测试:需要写测试用例。关注程序具体的执行流程,junit测试属于白盒测试使用步骤定义一个测试类(测试用例)建议测试类名:被测试类名+Test包名:xxx.xxx.xx.test定义测试方法:可以独立运行方法名:test+测试的方法名 testAdd()返回值 void参数列表:空参给方法加注解@Test导入junit依赖环境判定结果红色:失败绿色:成功

2021-08-10 21:21:11 114

原创 JavaSE学习笔记

Java SE文章目录Java SEjava基础语法注释关键字常量数据类型变量标识符类型转换运算符&分支语句运算符和表达式字符的加操作字符串的加操作赋值运算符自增自减运算符关系运算符逻辑运算符短路逻辑运算符三元运算符△数据输入分支语句switch&循环语句switch语句case穿透现象for循环语句while循环语句跳转控制语句循环嵌套死循环Random数组数组定义格式数组初始化数组操作中两个常见小问题数组常见操作方法方法概述方法定义带参数的方法定义形参和实参带返回值方法调用方法注意事项

2021-08-09 18:30:34 289

原创 Java 类加载&反射&模块化

类加载&反射&模块化当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化来对类进行初始化。如果不出意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化类的加载:就是将class文件读入内存,并为其创建一个java.lang.Class对象任何类被使用时,系统都会为之建立一个java.lang.Class对象类的连接:验证阶段:用于检验被加载的类是否有正确的内部结构,并和其它类协调一致准备阶段:负责为类的

2021-08-09 18:25:59 212

原创 Java Stream流学习

Stream流体验Stream流创建一个集合,存储多个字符串元素把集合中所有以“张”开头的元素存储到一个新的集合把“张”开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合使用Stream流的方式完成过滤操作arrayList.stream().filter(s->s.startsWith("张")).filter(s-> s.length()==3).forEach(System.out::println);直接阅读代码的字面意思即可完美展示五官逻辑

2021-08-09 18:25:17 145

原创 Java 函数式接口学习

函数式接口概述函数式接口:有且仅有一个抽象方法的接口。在代码中用@FunctionalInterface注解Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda适用的接口,只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利进行推导函数式接口作为方法的参数如果方法的参数是一个函数式接口,我们可以使用Lambda表达式作为参数传递startThread(()-> System.out.println(Thread.currentThrea

2021-08-09 18:24:43 70

原创 Java Lambda表达式学习

Lambda表达式体验lambda表达式需求:启动一个线程,在控制台输出:多线程程序启动了方式1:定义一个类MyRunnable实现Runnable接口,重写run方法创建MyRunnable类的对象创建Thread类对象,把MyRunnable对象作为构造参数传递启动线程/** * @author: 小码农 * @create: 2021-08-06 10:38 **/public class RunnableDemo1 implements Runnable { @O

2021-08-06 19:55:50 174

原创 每日学习打卡:Java网络编程

网络编程概述网络编程三要素:IP地址、端口号、协议InetAddress类:为了方便我们对ip地址的获取和操作,Java提供了一个InetAddress类供我们使用static InetAddress getByName(String host) 确定主机名称的ip地址,主机名称可以是机器名称或ip地址String getHostName() 获取此ip地址的主机名String getHostAddress() 返回文本显示中的ip地址字符串import java.net.InetAddr

2021-08-05 21:59:55 105

原创 Java 线程与同步

线程、同步Thread类getName()获取线程的名称currentThread()方法返回当前线程setName(String name)设置线程名称创建多线程程序的方法一:继承类Thread/** * @author: 小码农 * @create: 2021-08-03 20:22 **/public class Demo6 { public static void main(String[] args) { Thread_test t1 = new T

2021-08-05 19:39:11 84

原创 Java ObjectInputStream/ObjectOutputStream对象流概述

ObjectInputStream/ObjectOutputStream**作用:**用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。序列化:用ObjectOutputStream类保存基本类型数据或对象的机制反序列化:用ObjectInputStream类读取基本类型数据或对象的机制ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量对

2021-08-03 18:16:24 357

空空如也

空空如也

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

TA关注的人

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