- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 面试易错题
ublic class ListExer { /* 区分List中remove(int index)和remove(Object obj) */ @Test public void testListRemove() { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); updateList(list);
2023-04-19 22:11:21
4426
原创 Hashset
Set接口的框架:|----Collection接口:单列集合,用来存储一个一个的对象|----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”|----HashSet:作为Set接口的主要实现类;线程不安全的;可以存储null值|----LinkedHashSet:作为HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历对于频繁的遍历操作,LinkedHashSet效率高于HashSet.|----TreeSet:可以按照添加对象的指定属性,进行排序。.
2023-04-19 22:10:56
4456
原创 Java创建线程的四种方式——callabe接口
java创建线程共有四种方式:常用两种方式为:继承和实现runable接口,另外还有callable接口方式,以及线程池的方式今天说一下callable接口的方式 ,这是jdk5.0 新增的一种方式。创建callable接口共分为一下几个步骤:/1.创建一个实现Callable的实现类//2.实现call方法,将此线程需要执行的操作声明在call()中**//3.创建Callable接口实现类的对象//4.将此Callable接口实现类的对象作为传递到FutureTask构造器中,创建Futu
2023-04-19 22:10:35
4583
原创 2021-11-09
Hashmap 1.7 与1.8区别扩容机制: capcity 16 负载因子 0.75 阈值 2倍大小 1.8 不同1.7与1.8添加区别 头插法(1.7 缺点 死循环 是线程不安全原因之一) 尾插法 (1.8 )concurrentHashMap 线程安全的集合容器 保证线程安全还有Hashtable 或者加Synchronized lock,或者collection。synchronized 同步操作,为什么选择concurrentHashmapconcurren
2023-04-19 22:10:10
4918
原创 操作系统内存管理
连续分配方式1.单一连续分配只用于单用户进程,缺点较明显。2.固定分配分区大小相等:虽然可以并发执行,但是容易造成空间浪费分区大小不等方式:见上图(起始地址,分区大小)动态分配方式:根据进程需求要多少给多少 但是祝愿系统只能分配2的幂次空间,如100kb进程分配128kb。若所分配进程运行完,此处空间便空闲,一般采用空闲分区链或者空闲分区表的方式进行组织,当又有进程来时,会有空闲分区算法来进行分配。1)首次适应算法缺点原因:1.由于其空闲分区地址是按照地址排序的,所以查找到的第一个地
2022-05-24 11:19:44
2556
原创 Mybits入门
1、搭建实验数据库CREATE DATABASE `mybatis`;USE `mybatis`;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(20) NOT NULL,`name` varchar(30) DEFAULT NULL,`pwd` varchar(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;inse
2022-02-25 18:24:38
2580
原创 SpringBoot 自动装配原理
运行原理探究我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起;1、父依赖pom.xmlspring-boot-dependencies:核心依赖在父工程中!我们在写或者引入一些Springboot依赖的时候,不需要指定版本,就因为有这些版本仓库1、其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件!<parent> <groupId>org.springframework.boot
2022-02-25 18:23:01
2623
原创 yaml语法学习
yaml语法学习配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yaml语法结构 :key:空格 value**配置文件的作用 :**修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!server: port: 8081
2022-02-25 18:22:46
2599
原创 JSR303数据校验
JSR303数据校验先看看如何使用Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;1、添加validation启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation&l
2022-02-25 18:22:21
2731
原创 【无标题】
自动配置原理配置文件到底能写什么?怎么写?----联系---- spring.factoriesSpringBoot官方文档中有大量的配置,我们无法全部记住,官网:https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/appendix-application-properties.html#core-properties[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KaIxg1aH-16
2022-02-25 18:21:36
2545
原创 【狂神JAVA】MyBatis笔记
简介自学的【狂神JAVA】MyBatis分享自写源码和笔记,希望对大家有帮助本人配置jdk13.0.2 (jdk1.7以上均可)Maven 3.6.3MySQL 5.7.23 (mysql5.6以上均可)1. 配置官网文档: https://mybatis.org/mybatis-3/zh/getting-started.htmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://
2022-01-21 22:39:40
2685
原创 一道关于String的易错习题
*/ @Test public void test4(){ String s1 = "javaEEhadoop"; String s2 = "javaEE"; String s3 = s2 + "hadoop"; System.out.println(s1 == s3);//false final String s4 = "javaEE";//s4:常量 String s5 = ...
2021-11-01 22:30:27
3644
原创 String 常用方法
int length():返回字符串的长度: return value.lengthchar charAt(int index): 返回某索引处的字符return value[index]boolean isEmpty():判断是否是空字符串:return value.length == 0String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写Strin
2021-11-01 22:29:51
3953
原创 增强for循环
在遍历数组,字符串等集合时,可以调用用for(集合元素类型 局部变量 :集合对象)来遍历,但是实际上for内部调用了迭代器iterator,因此注意看代码方式二,并没有改变原集合属性值。//练习题 @Test public void test3(){ String[] arr = new String[]{"MM","MM","MM"};// //方式一:普通for赋值// for(int i = 0;i < arr.length;
2021-10-31 20:09:13
2592
原创 JAVA String类特点
String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。(对象是可以进行传输的,以字节流通过网络传给对方,对方可以再还原回来)实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用于存储字符串数据4.String:代表不可变的字符序列。简称:不可变性。 体现:1.当对字符串重新赋值时,需要重写指定内存区域赋值
2021-10-26 10:39:46
3989
原创 String实例化两种方式的区别
如上图所示,第一种直接赋值的是str1地址直接指向常量池中的“abc”,假如“abc”的地址值为1234,那么str1所存的地址值就是1234。而注意str2存储的地址为堆中的value地址,我们不妨假设为3456,这里value所储存的东西为常量池"abc"的地址1234.由于String的不可变性可知,若我们定义一个Strin str3= “abc”,则str3=str1String s = new String(“abc”);方式创建对象,在内存中创建了几个对象?两个:一个是堆空间中new结构,
2021-10-25 22:18:26
3807
原创 ROS-手势控制小海龟移动
手势控制小海龟移动这是很早之前学习ros做的一个小demo,适合初学者学习。一.要求要求通过电脑自带摄像头检测手势动作控制小海龟移动二.问题分析本设计需要运行三个节点,第一个节点为reconition(发布),通过采用传统的视觉算法检测手势动作,并将检测完后的数据传递到command(手势订阅)节点,command(海龟运动发布)节点订阅到手势信息后进行判断,并将相应指令传递给小海龟/turtle1/cmd_vel’,控制其运动。note:其实也可以不必采用传统的视觉检测算法,也可以采用深度学习
2021-10-25 12:22:22
5760
2
原创 sleep方法和wait()的异同
sleep方法和wait()的异同1.相同点:一旦执行方法,都可以使得当前线程进入堵塞状态2.不同点:1)两个方法声明位置不同:sleep是在Threa类中的方法,wait()是在Object类中的方法2)调用的要求不同:sleep()可以在任何需要的场景下调用。wait()必须在同步代码块中调用3)关于是否释放同步监视器:两个都在同步代码块和同步方法时,sleep()不释放同步监视 器,但是wait()释放同步监视器。解释:其实他们的不同点在于他们所处的类的位置不同,wa
2021-10-21 21:54:16
4053
原创 多线程死锁解决方法
多线程死锁解决方法 java里面,多线程死锁共分为两种方法,第一种为synchronized方式,第二种方法为lock锁(JDk 5.0 新增)synchronized方式 其主要分为同步代码块与同步方法。同步代码块方式一:同步代码块*synchronized(同步监视器){ //需要被同步的代码}说明:1.操作共享数据的代码,即为需要被同步的代码。 -->不能包含代码多了,也不能包含代码少了。 2.共享数据:多个线程共同操作的变量。比如:ticket就
2021-10-21 20:37:13
4948
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人