Java基础
文章平均质量分 66
大三学习笔记
848698119
荣辱与共,终成一豪
展开
-
CopyOnWriteArrayList的底层原理——ConcurrentHashMap的扩容机制——接口和抽象类的区别—JDK,JRE,JVM三者区别和联系—ThreadLocal的底层原理
当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。而接口是对行为的抽象,表达的是like a的关系。接口的核心是定义行为,即实现类可以做什么,至于实现类主体是谁、是如何实现的,接口并不关心。进行约束(更准确的说是一种"有"约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。抽象类是对类本质的抽象,表达的是is a的关系,比如: BMW is a Car。原创 2022-09-08 23:35:05 · 2968 阅读 · 0 评论 -
Java在CMD命令行编译乱码解决
【代码】Java在CMD命令行编译乱码解决。javac -encoding utf8 *.java原创 2022-09-06 19:21:31 · 3110 阅读 · 0 评论 -
Java计算两年后的前一天yyyyMMdd
输入一个字符串,如:20220801输出两年后的前一天,预期输出:20240731。原创 2022-08-24 11:58:53 · 3821 阅读 · 0 评论 -
Java有序数组——原地去重——不使用额外空间
如a=[1,1,2],在比较a[0]==a[1],两个相同那就把[0]给覆盖掉变成a=[1,2,2],此时注意你的最后一个元素就是已经没有用了,所以有效长度为length-1。解释函数应该返回新的长度5,并且原数组nums的前五个元素被修改为0,1,2,3,4。三种方法交换另两个数的值,前两种是同一个类型的,第三种用的是二进制的位运算中的异或。输入nums=[0,0,1,1,1,2,2,3,3,4]输出5,nums=[0,1,2,3,4]排列的数组nums,......原创 2022-07-28 21:05:53 · 4825 阅读 · 0 评论 -
平方和-数列求值-2019Java A
第一题:平方和(5 分)题目描述小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。请问,在 1 到 2019 中,所有这样的数的平方和是多少?题目分析:对10取余数判断每一个位上是否包含2,0,1,9这四个数字,包含就平方然后相加,注意数值超出最大值int 4字节,32位,最大:2147483647long doub原创 2022-05-19 12:22:45 · 4659 阅读 · 0 评论 -
Java学习笔记
Java基础常见知识&面试题总结Java 和 C++ 的区别?我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Java 和 C++ 比呀!没办法!!!就算没学过 C++,也要记下来。虽然,Java 和 C++ 都是面向对象的语言,都支持封装、继承和多态,但是,它们还是有挺多不相同的地方:Java 不提供指针来直接访问内存,程序内存更加安全Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。Java 有自动内存管理垃圾回收机制(G原创 2022-03-25 14:24:53 · 9231 阅读 · 0 评论 -
java 日期
java selenium自动化项目时间 @Test public void date(){ Calendar cal = Calendar.getInstance(); //日历对象 cal.add(Calendar.DATE,20); //20天后的日期 String Day = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); //日期格式的方法 S原创 2022-03-22 18:56:57 · 8480 阅读 · 0 评论 -
Integer和String非空判断
1.Integer封装类不赋值的话默认为null1.1 Integer判断值是否相等阿里巴巴的《Java开发手册》中也有相应的规定,规定的内容如下:所有整型包装类对象之间值的比较,全部使用 equals 方法比较。说明:对于 Integer var = ? 在 -128 至 127 之间的赋值,Integer 对象是在 IntegerCache.cache 产生, 会复用已有对象,这个区间内的 Integer 值可以直接使用 == 进行判断,但是这个区间之外的所有数据,都 会在堆上产生,并不会复用原创 2022-03-22 10:05:20 · 21683 阅读 · 0 评论 -
小明公司有1000人,今年年会举行抽奖活动,一次抽出三等奖4名,二等奖2名,一等奖1名
1-1000随机抽取7个不重复的数原创 2022-02-16 21:12:58 · 9538 阅读 · 1 评论 -
高并发中的集合有哪些问题
高并发中的集合有哪些问题?JDK1.8的新特性有哪些?原创 2022-01-24 17:35:12 · 10840 阅读 · 2 评论 -
Map集合接口的常见问题
Scanner 类我们在使用 Java 写代码时,如果想要实现输入操作怎么办呢,这时候我们需要用到的是 Scanner 类来实现获取用户从键盘上的输入操作。Scanner 类是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值;Scanner 类可以任意地对字符串和基本类型(如 int 和 double )的数据进行分析。当我们引入 Scanner 这个类的时候,我们需要导入java.util.Scanner这个类。使用 import 导入类如果我们要使用其他原创 2022-01-13 15:32:54 · 8298 阅读 · 0 评论 -
Map—HashMap的底层实现原理—TreeMap两种添加方式(自然排序和定值排序)
一、Map的实现类的结构:|----Map:双列数据,存储key-value对的数据 —类似于高中的函数:y = f(x)|----HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和value|----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行效率高于HashMap。|----TreeMap:保证按照添加的ke原创 2022-01-13 12:52:07 · 8670 阅读 · 0 评论 -
Java集合Collection,Map练题
练习1.请从键盘随机输入10个整数保存到List中,并按倒序,从大到小的顺序显示出来package com.guo.subject;import java.util.*;public class NumberDesc { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List list = new ArrayList();原创 2022-01-13 12:48:24 · 8722 阅读 · 0 评论 -
Collections工具类
Collections工具类Collections是一个操作Set,List和Map等集合的工具类Collections中提供了一系列静态的方法对集合元素进行排序,查询和修改等操作,还提供了对集合对象设置不可变,对几个对象实现同步控制等方法排序操作:(均为static方法)reverse(List): 反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List,Comparator): 根据指定的Comparator产生的顺序对List集合元素进行原创 2022-01-12 22:57:07 · 8229 阅读 · 0 评论 -
Collection接口的子接口List接口和Set接口
Collection接口的子接口List接口和Set接口原创 2022-01-05 21:45:48 · 9662 阅读 · 0 评论 -
Java集合框架&接口方法&集合遍历
一、集合框架的概述1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2.1 数组在存储多个数据方面的特点:一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr;int[] arr1;Object[] arr2;2.2 数组在存储多个数据方面的缺点:一旦初始化以后,其长度就不可修改。转载 2022-01-04 22:02:45 · 8311 阅读 · 0 评论 -
枚举类和注解Annotation
枚举类一,枚举类的使用类的对象只有有限个,确定的。我们称此类为枚举类当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只有一个对象。则可以作为一种单例模式的实现方式。二,如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类public class SeasonTest { public static void main(String[] args) { Season spring = Season.SPR原创 2022-01-03 18:15:50 · 8507 阅读 · 0 评论 -
Java比较器-学习
1.Java比较器的使用背景Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable 或 Comparator2.自然排序:使用Comparable接口2.1说明像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。像String、包装类重写c原创 2022-01-02 17:39:04 · 8421 阅读 · 0 评论 -
JDK8之前日期和时间的API测试
JDK8之前日期和时间的API测试(一)long time = System.currentTimeMillis();//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差//称为时间戳(二)java.util.Date类|—java.sql.Date类两个构造器的使用>构造器一:Date():创建一个对应当前时间的Date对象Date date1 = new Date();>构造器二:创建指定毫秒数的Date对象Date date2 = new Dat原创 2022-01-01 00:04:37 · 8660 阅读 · 2 评论 -
String、StringBuffer、StringBuilder三者的异同
字符串String1.String s = new String("abc");//方式创建对象,在内存中创建了几个对象?常用API字符串拼接问题:String、StringBuffer、StringBuilder三者的异同?StringBuffer的常用方法:对比String、StringBuffer、StringBuilder三者的效率:String的常用方法有哪些?(至少7个)JVM中字符串常量池存放位置说明:StringString:字符串,使用一对""引起来表示。1.String声明为fin原创 2021-12-30 23:32:42 · 8827 阅读 · 1 评论 -
Java的面向对象
Java的面向对象1.java类及类的成员:属性,方法,构造器; 代码块,内部类2.面向对象的三大特征:封装性,继承性,多态性3.其他关键字:this,super,static,final,abstract,interface,package,import等类 = 属性 + 方法1.属性 = 成员变量 = field = 域,字段2.行为 = 方法 = 成员方法 = 函数 = method3.创建类的对象 = 类的实例化 = 实例化对象类和对象的使用(面向对象思想的落地实现)1.创建类,原创 2021-12-25 21:44:07 · 9422 阅读 · 0 评论 -
Java基础之异常的处理-学习笔记
编译看左边,执行看右边原创 2021-12-20 22:27:41 · 8373 阅读 · 0 评论 -
冒泡排序快速排序
冒泡排序 int a[] = {-2,10, 5,1,9,-8,4,6,7,8,2,3}; //冒泡排序 for (int i = 0; i < a.length-1; i++) { for (int j = 0; j < a.length-i; j++) { if (a[j]>a[j+1]){ int temp = a[j];原创 2021-12-11 23:50:57 · 8740 阅读 · 0 评论 -
Java的8种基本数据类型
1.Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小·整型:byte short int long·浮点型:float double·字符型:char·布尔类型:booleanbyte: 8位,最大存储数据量是255,存放的数据范围是-128~127之间。short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方.原创 2021-12-10 22:44:44 · 8872 阅读 · 0 评论 -
创建线程-学到了4种方法
进程是系统资源分配的基本单位,线程是任务调度和执行的基本单位单核CPU和多核CPU:单核CPU:其实是一种假的多线程,时间单元内只能执行一个线程任务。一个人同时炒3个菜(并发)。多核CPU:3个人同时炒3个菜(并行) (现在的服务器都是多核的)一个Java应用程序java.exe,其实至少有三个线程: main()主线程,gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。多线程程序的优点:1.提高应用程序的响应。对图形化界面更有意义,可增强用户体验。2.提高计算机系统CPU的利用率原创 2021-12-07 23:33:11 · 8695 阅读 · 0 评论 -
解决SpringMVC的乱码问题
解决springmvc项目中使用过滤器来解决请求方式为post时出现乱码的问题springmvc项目中使用过滤器来解决请求方式为post时出现乱码的问题,在spring项目中,当请求方式为post时,可能在获取数据之后会有乱码的情况,其中一种解决方法就是在拿到请求参数之前设置编码格式为utf-8,如下 request.setCharacterEncoding("utf-8"); String strId = request.getParameter("id"); String strName =原创 2021-11-28 22:28:59 · 9208 阅读 · 0 评论 -
Tomcat目录详解
Tomcat1.bin:启动和关闭Tomcat2.conf3.lib4. logs5.temp6.webapps7.workTomcat1.bin:启动和关闭Tomcat该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但.原创 2021-11-22 23:37:11 · 8713 阅读 · 0 评论 -
IOC操作Bean管理(Xml注入集合属性)
IOC操作Bean管理(Xml注入集合属性)1.注入数组类型属性2.注入List集合类型属性3.注入Map集合类型属性4.注入Set集合类型属性(1)创建类,定义数组、list、map、set 类型属性,生成对应 set 方法public class Stu { //1 数组类型属性 private String[] courses; //2 list 集合类型属性 private List<String> list; //3 map 集合类型属性 private Map原创 2021-10-24 20:41:10 · 8232 阅读 · 0 评论 -
Integer的parseInt和valueOf的区别
Integer的parseInt和valueOf的区别 Integer的parseInt和valueOf的区别parseInt(String s)valueOf(String s)先来看一下下面这段代码String s = "1";System.out.println(Integer.valueOf(s));System.out.println(Integer.parseInt(s));输出结果是什么?没错,一样都是1。两个方法都可以把数字类型字符串转成int类型整数,但是这两个方法还是有原创 2021-10-22 10:10:29 · 8425 阅读 · 1 评论 -
JDK,JRE和JVM的关系
JDK,JRE和JVM的关系JDK:Java Develpment Kit java 开发工具JRE:Java Runtime Environment java运行时环境JVM:java Virtual Machine java 虚拟机jdk 是给开发人员使用的, jre和jvm是给普通用户使用JDK的下载链接: JDK下载....原创 2021-10-06 13:47:42 · 12824 阅读 · 1 评论 -
数据库属性配置文件jdbc.properties
数据库属性配置文件jdbc.properties1.com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别2.useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai2.1 useUnicode=true&characterEncoding=utf82.2 serverTimezone=Asia/Shanghai2.3 us原创 2021-10-02 20:30:46 · 8736 阅读 · 2 评论 -
JDBC增删改查的封装
JDBC增删改查的封装JDBCJDBC增删改查的封装1.JDBC五步走完成2.DAOUtil3.增,删,改,查的封装1.添加2.删除3.修改4.查询1.JDBC五步走完成2.DAOUtilimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import原创 2021-08-02 00:13:35 · 8618 阅读 · 1 评论 -
maven配置阿里云镜像
maven配置阿里云镜像修改maven根目录下的conf文件夹中的setting.xml文件,添加内容如下: <mirror> <id>nexus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf> <name>Nexus aliyun</name> <原创 2021-07-03 18:44:04 · 8236 阅读 · 0 评论 -
API和String
API (Application Programming Interface) :应用程序编程接口Java API:指的就是JDK中提供的各种功能的Java类这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即呵,我们可以通过帮助文档来学习这些API如何使用注意:调用方法的时候,如果方法有明确的返回值,我们用变量接收可以手动完成,也可以使用快捷键的方式完成(Ctrl+Alt+V)String字符串的特点1.字符串不可变,它们的值在创建后不能被更改2.原创 2021-05-21 07:46:58 · 8249 阅读 · 0 评论 -
java集合
1.1集合概述集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变集合类有很多,目前我们先学习一个: ArrayListArrayList< E> :1.可调整大小的数组实现2. < E>是一种特殊的数据类型,泛型。怎么使用:在出现E的地方我们使用引用数据类型替换即可举例: ArrayList< String>,ArrayList< Student>1.2ArrayList构造方法和添加方法import java.uti原创 2021-05-21 07:44:21 · 8169 阅读 · 0 评论 -
面向对象三大特征:继承,封装,多肽
面向对象三大特征:继承,封装,多肽1.继承原创 2021-05-21 07:42:22 · 8238 阅读 · 2 评论 -
学生管理系统无可视化java
1.2学生管理系统实现思路①定义学生类②主界面的代码编写③添加学生的代码编写④查看学生的代码编写⑤删除学生的代码编写⑥修改学生的代码编写原创 2021-05-19 15:15:15 · 8224 阅读 · 0 评论 -
java异或-实现字符串找不同
java异或实现字符串找不同给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "aea"输出:"a"提示:原创 2021-05-15 22:34:40 · 10262 阅读 · 2 评论 -
String和StringBuilder
3.1 StringBuilder概述StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器这里的可变指的是StringBuilder对象中的内容是可变的String和StringBuilder的区别:String:内容是不可变的StringBuilder:内容是可变的 public static void main(String[] args) { StringBuilder s = new StringBuilder(); Syste原创 2021-05-13 17:32:01 · 10208 阅读 · 3 评论 -
逢七过
逢七过需求:朋友聚会的时候可能会玩一个游戏:逢七过。规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。思路:1:数据在1-100之间,用for循环实现数据的获取2:根据规则,用语句实现数据的判断。要么个位是7,要么十位是7,要么能够被7整除:3.在控制台输出满足规则的数据package com.company;p原创 2021-04-27 18:07:09 · 8892 阅读 · 0 评论