java
文章平均质量分 80
java个人学习分享
东海龙王Q
一个有着执着追求的手残者
展开
-
Java面试——6——ArrayList
1、ArrayList底层数据结构2、ArrayList与LinkedList有什么区别3、CopyOnWriteArrayList的原理2.24 ArrayList和LinkedList有什么区别?参考答案ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 对于随机访问ArrayList要优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随机访问,而LinkedList的每一个元素都依靠地址指针和它后一个元素连接..原创 2021-03-04 19:28:51 · 143 阅读 · 1 评论 -
Java面试——5——ConcurrentHashMap
1、ConcurrentHashMap与Hash有什么区别2、ConcurrentHashMap是如何实现的3、ConcurrentHashMap是怎么实现分段分组的2.16 HashMap与ConcurrentHashMap有什么区别?参考答案HashMap是非线程安全的,这意味着不应该在多线程中对这些Map进行修改操作,否则会产生数据不一致的问题,甚至还会因为并发插入元素而导致链表成环,这样在查找时就会发生死循环,影响到整个应用程序。Collections工具类可以将一个..原创 2021-03-04 19:17:23 · 173 阅读 · 2 评论 -
Java面试——4——HashMap
1、HashMap有什么特点2、HashMap底层实现3、JDK和JDK8中的HashMap有什么区别4、HashMap中循环链表是如何产生的5、HashMap是如何解决哈希冲突的2.6 HashMap有什么特点?参考答案HashMap是线程不安全的实现; HashMap可以使用null作为key或value。2.7 JDK7和JDK8中的HashMap有什么区别?参考答案JDK7中的HashMap,是基于数组+链表来实现的,它的底层维护一个Entry数组.原创 2021-03-04 19:07:03 · 117 阅读 · 1 评论 -
Java面试——3——异常处理机制
1、异常类的继承体系2、异常的处理机制3、finally在什么条件下会执行,finally中return会怎么样1.36 遇到过异常吗,如何处理?参考答案在Java中,可以按照如下三个步骤处理异常: 捕获异常 将业务代码包裹在try块内部,当业务代码中发生任何异常时,系统都会为此异常创建一个异常对象。创建异常对象之后,JVM会在try块之后寻找可以处理它的catch块,并将异常对象交给这个catch块处理。 处理异常 在catch块中处理异常时,应该先记录..原创 2021-03-04 18:47:04 · 171 阅读 · 1 评论 -
Java面试——2——String类
1、Strng类主要包含那些方法?2、String类包含哪些支持正则表达式的方法?3、new 和 " " 有什么区别?4、字符串相加的实现机制?5、String、StringBuffer有什么区别?1.24 String类有哪些方法?参考答案String类是Java最常用的API,它包含了大量处理字符串的方法,比较常用的有:char charAt(int index):返回指定索引处的字符; String substring(int beginIndex, int ..原创 2021-03-04 18:32:32 · 141 阅读 · 1 评论 -
Java面试——1——Object类
Object类中包含的主要方法? hashCode()和equals()的关系? ==和equals()有什么区别?1.介绍一下Object类中的方法参考答案Object类提供了如下几个常用方法:Class<?> getClass():返回该对象的运行时类。 boolean equals(Object obj):判断指定对象与该对象是否相等。 int hashCode():返回该对象的hashCode值。在默认情况下,Object类的hashCode()方法根据该..原创 2021-03-04 18:16:16 · 163 阅读 · 1 评论 -
正则表达式提取技巧
正整数:^\d+$ 负整数:^-\d+$ 电话号码:^+?[\d\s]{3,}$ 电话代码:^+?[\d\s]+(?[\d\s]{10,}$ 整数:^-?\d+$ 用户名:^[\w\d_.]{4,16}$ 字母数字字符:^[a-zA-Z0-9]*$ 带空格的字母数字字符:^[a-zA-Z0-9 ]*$ 密码:^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$ 电子邮件:^([a-zA-Z0-9._%-]+@...原创 2020-11-04 23:11:25 · 502 阅读 · 0 评论 -
javase复习
/*001* 面向对象* 面向过程和面向对象* 面向过程 先做什么后做什么 强调过程* 面向对象 用谁对谁做点什么 让谁做什么 强调角色和作用** 面向过程解决微观层次问题* 面向对象解决宏观层次问题** 面向对象底层要依靠面向过程** 类 一类事物的统称,多个性质相同或者相近的实物抽象成的一种认识* 对象 一类事物中,具体的实际存在的可以使用的实例** 类三大成员* 成员变量 模拟类的属性* 成员方法 模拟类的功能* 构造方法 构造和初始化对象*原创 2020-11-02 07:09:27 · 150 阅读 · 0 评论 -
MyBatis配置逆向工程(mysql8版本)
前言:本人查遍全网教程大多都是烂大街的过时教程(5版本的,要不就是引入SpringBoot的),所以本人本着雷锋精神,耗费一上午的时间为大家实践出这款纯净版的mybatis教程不涉及其他框架知识,但涉及到Maven包管理的(版本为Maven3),废话不多说上教程测试案例环境mybatis3.5.2mysql-connector-java8.0.16mybatis-generator-maven-plugin1.3.5项目初始化目录结构把这...原创 2020-10-31 16:06:33 · 970 阅读 · 0 评论 -
Java之Maven配置(pom.xml)指定jdk版本教程
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ma.原创 2020-10-28 19:39:59 · 2329 阅读 · 1 评论 -
IDEA使用JDBC连接MySQL数据库(手工非Maven版)
首先需要保证你已经成功安装mysql接下来下载连接MySQL数据库的驱动使用JDBC连接MySQL数据库的驱动为Connentor/J,这里以最新版本的8.0为例解压zip文件,随便解压到一个地方就好,当然作为程序员,需要有好习惯的创建java项目,导入mysql-connector-java-8.0.13.jar包下面再来看下导入jar的步骤写代码//导入包import java.sql.Connection;import java.sql.DriverManager;原创 2020-10-25 21:00:12 · 351 阅读 · 0 评论 -
IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
1、在IDEA里创建Maven项目1.1、点击Create New Project1.2、选择Maven,JDK这里用的是1.8,点击Next1.3、填入“组织名”、“项目名”,版本是默认的,点击Next1.4、选择创建路径,点击Finsh1.5、这是创建完成的界面2、用Maven连接Mysql的JDBC驱动2.1、打开src下的pom.xml文件, 在里面添加Mysql的jdbc包的引用,代码如下1 <depende...原创 2020-10-24 19:10:58 · 4251 阅读 · 0 评论 -
Java之LinkedList 与 ArrayList 的区别
LinkedList和ArrayList最明显的区别在于它们存储对象的方式。ArrayList更适合于存储和访问数据,因为它与普通数组非常相似。LinkedList更适合操作数据,比如进行大量的插入和删除操作。除了存储对象之外,LinkedList还存储相邻元素内存地址(或链接)。它被称为LinkedList,是因为每个元素都包含到相邻元素的链接。你可以使用增强型的for循环遍历其元素。LinkedList<String> c = new LinkedList<S原创 2020-08-13 21:20:02 · 71 阅读 · 0 评论 -
Java之匿名类2
匿名类匿名类是一种即时继承现有类的方法。例如,下面有一个类Computer:class Computer { public void start() { System.out.println("Starting"); }}创建 Computer 对象时,我们可以即时更改 start 方法。public static void main(String[] args) { Computer c = new Computer() { @Override pu.原创 2020-08-13 18:57:29 · 61 阅读 · 0 评论 -
Java之方法重载重写的区别
重写与重载之间的区别区别点 重载方法 重写方法 参数列表 必须修改 一定不能修改 返回类型 可以修改 一定不能修改 异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常 访问 可以修改 一定不能做更严格的限制(可以降低限制) 总结方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载原创 2020-08-13 15:19:16 · 88 阅读 · 0 评论 -
java静态变量学习体会
静态变量当你声明一个变量或方法为静态时,它属于这个类,而不是一个特定的实例。不管你创建了该类的多个对象,或者如果你不创建任何对象, 有且只有一个静态成员的实例存在。该静态成员将被所有对象共享。static关键字用来声明独立于对象的静态变量。下面是一个例子:public class Counter { public static int numCount = 0; Counter() { numCount++; }}numCount 变量将被该类的所有对象.原创 2020-08-13 14:00:26 · 175 阅读 · 0 评论 -
java之面向对象2
面向对象Java 使用面向对象编程(Object-Oriented Programming,OOP),这是一种编程风格,它旨在使思考编程更接近思考现实世界。java 中的对象在面向对象中,每个对象都是一个独立的单位,就像现实世界中的对象一样。看看周围真实的世界,会发现身边有很多对象,车,猫,人等等。所有这些对象都有自己的状态和行为。拿一只猫来举例,它的状态有:猫名、猫龄、颜色,行为有:睡觉、吃食和发出声音。对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软.原创 2020-08-13 11:20:40 · 69 阅读 · 0 评论 -
Java之多维数组2
多维数组多维数组可以看成是数组的数组,二维数组是最基本的多维数组。要创建多维数组,请将每个数组放在其自己的一组方括号内。下面是一个二维数组的例子:int[][] num = {{1,2,3},{4,5,6}}; 在上面的例子中,声明了一个有两个数组作为其元素的数组。要访问二维数组中的元素,需要提供两个索引,一个用于数组,另一个用于该数组中的元素。下面是一个例子,用于访问第二个num数组中的第一个元素。int x = num[1][0];System.out.printl原创 2020-08-13 10:55:58 · 122 阅读 · 0 评论 -
Java之逻辑运算符
逻辑运算符逻辑运算符用于组合多个条件。假设你想要让你的程序输出 “Good!” ,只有当变量 a 大于10并且变量 b 大于20时。一种方法是使用嵌套的 if 语句:if (a > 10) { if (b > 20) { System.out.println("Good!"); }}但是,使用逻辑与运算符(&&)是一个更好的方法:if (a > 10 && b > 20) { System.o原创 2020-08-13 08:51:23 · 98 阅读 · 0 评论 -
Idea快捷键使用
IntelliJ IDEA 设置代码提示或自动补全的快捷键 (附IntelliJ IDEA常用快捷键)修改方法如下:点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框。在左侧的导航框中点击 KeyMap。接着在右边的树型框中选择 Main menu –> Code –> Completion.接着需要做两件事:1. 移除原来的Cycle Expand Word 的 Alt+/ 快捷键绑定。2. ...原创 2020-08-12 19:58:23 · 593 阅读 · 0 评论 -
犀牛鸟研学营-个人体会1
首先,非常感谢有机会参与到犀牛鸟研学营活动中,于我是一种幸运。研学营的内容非常充实: Al医疗、神经网络、自动驾驶、机器人技术、Al+游戏、自然语言处理等,可以说涵盖犀牛乌研学营涵盖了当前的大部分热点人工智能技术。在我看来,研学营提供了-个非常好的让我们了解自己兴趣点和了解行业发展的平台。Al技术的发展之快,算法的从无到有,返璞归真,于我都是一种震撼,让我对这个行业的热爱更加赤诚,对我自己在人工智能领域的发展更有渴望和期盼。作为一名大三的学生,作为一名接触深度学习将近两年多的学生,深度学习的样子不再像大原创 2020-08-07 07:27:01 · 435 阅读 · 0 评论 -
研学营成绩分享
原创 2020-08-07 06:40:43 · 83 阅读 · 0 评论 -
Java之异常详解
异常程序执行过程中出现异常。异常会导致程序异常终止。异常处理是处理运行时错误以保持正常应用程序流的强大机制。异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。提示:如你所见,这些异常有的是因为用户错误引起,有的是程序错误或物理错误引起的。但是,一个写得好的程序应该处理所有可能的异常情况。异常处理使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地.原创 2020-08-06 11:40:16 · 115 阅读 · 0 评论 -
Java之向上、向下转型
向上转型和向下转型对于类,有两种类型的转换。向上转型(Upcasting)您可以将一个子类的实例转换为其父类。这是向上转换。下面是一个例子,比如 Dog 是 Animal 的一个子类。Animal a = new Dog();Java 自动将 Dog 类型的变量上传到 Animal 类型。向下转型(Downcasting)将父类的对象转换为其子类称为向下转换。下面是一个例子:Animal a = new Animal();((Dog)a).barki..原创 2020-08-06 11:03:00 · 78 阅读 · 0 评论 -
Java之抽象类
抽象类例如,我们可以将 Animal 类定义为抽象类:abstract class Animal { int legs = 0; abstract void barking();}barking 方法也是抽象的,因为它在父类中没有实现。我们可以继承 Animal 类并为子类定义 barking() 方法:class Dog extends Animal { public void barking() { System.out.println("Woof-Woof原创 2020-08-06 10:30:48 · 140 阅读 · 0 评论 -
Java之重载和重写详解
方法重载重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。重载规则:被重载的方法必须改变参数列表(参数个数或类型不一样); 被重载的方法可以改变返回类型; 被重载的方法可以改变访问修饰符; 被重载的方法可以声明新的或更广的检查异常; 方法能够在同一个类中或者在一个子类中被重载。 无法以返回值类型作为重载函数的区分标准。例子:原创 2020-08-06 10:25:11 · 150 阅读 · 0 评论 -
Java之重载重写的区别
原创 2020-08-06 10:08:28 · 66 阅读 · 0 评论 -
java之继承
继承构造函数不是成员方法,所以不会被子类继承。然而,父类的构造函数在子类被实例化时会被调用。下面是一个例子:class A { public A() { System.out.println("New A"); }}class B extends A { public B() { System.out.println("New B"); }}class Test { public static void main(String[] args)原创 2020-08-06 10:04:06 · 63 阅读 · 0 评论 -
Java之条件和循环(条件声明)
条件语句条件语句用于根据不同的条件执行不同的操作。if语句是最常用的条件语句之一。一个if语句包含一个布尔表达式和一条或多条语句。if语句的用法如下:if (表达式布尔){ //如果表达式为true将执行的语句}如果if语句的布尔表达式的值为true,则执行if语句内的代码块,否则执行if语句块后面的代码。提示:请记住,您需要使用两个等号(==)来检查是否相等,而单个等号(=)是赋值运算符。...原创 2020-07-08 17:35:18 · 553 阅读 · 0 评论 -
java变量2
下面是一个变量声明的例子:class MyJavaClass { public static void main(String[] args) { String name ="Lu"; int age = 26; double score = 18.9; char group = 'B'; }}char是字符类型,用来定义一个字符。还有一种类型是布尔类型,它只有两个取值:true和false,这种类型只作为一种标志来记录 true/false 情况..原创 2020-07-08 07:52:48 · 115 阅读 · 0 评论 -
Java变量
什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如:水杯是容器,用来装载水;衣柜用来装载衣服;那么变量是装载什么的尼?是数据!所以:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。变量被赋予名称(或标识符),例如:name,age,high等。该名称唯一标识每个变量,用来为变量赋值或检索存储的值。在Java中,变量有各种类型。下面是一些例子:int:整数,如123和-456。 double:浮点数,可选小数点和小数部分,如3.1416,-11.22。原创 2020-07-08 07:48:31 · 80 阅读 · 0 评论 -
Java之文档注释
文档注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。文档注释,使你更加方便的记录你的程序信息。Java 文档注释以/**开始,以*/结束。例如:/** 这是一个文档注释 *//** 这也是一个 文档注释 */在开始的/**之后,第一行或几行是关于类、变量和方法的主要描述。之后,你可以包含一个或多个各种各样的@标签。每一个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*).下面是一个类的说明注释...原创 2020-07-08 07:31:28 · 183 阅读 · 0 评论 -
Java多行注释
Java也支持跨多行的注释。Java多行注释以/*开始,以*/结束例如:/* 这是一个 * 多行注释 */请注意,Java 不支持嵌套的多行注释,但是,您可以在多行注释中嵌套单行注释。例如:/* 嵌套单行注释 // 单行注释 */...原创 2020-07-08 07:25:09 · 2432 阅读 · 0 评论 -
Java注释
您可以在Java代码中包含注释,这将提高源代码的可读性。Java支持单行以及多行注释。注释中的字符将被Java编译器忽略。java单行注释以//开始,直到行尾为止。原创 2020-07-08 07:22:19 · 64 阅读 · 0 评论 -
Java标识符
在Java中,类名、变量名以及方法名都被称为标识符。关于Java标识符,我们应该注意以下几点:标识符由字母、美元符、下划线或数字组成。 标识符应该以字母、美元符、下划线开头。 Java标识符是大小写敏感的,长度无限制。 不能使用关键字作为Java的标识符,关键字如class、void等等。...原创 2020-07-08 07:17:27 · 68 阅读 · 0 评论 -
Java的基本语法
在编写Java程序时应注意以下几点:大小写敏感 类名:首字母大写 方法名:所有的方法都有应该以小写字母开头 源文件:源文件名称必须与类名相同 主方法入口:所有的Java程序都是由public static void main(String[] args)方法开始执行。切记Java是大小写敏感的,Java文件名和类名如果不同会导致编译报错。...原创 2020-07-08 07:08:10 · 74 阅读 · 0 评论 -
JAVA之抽象
抽象概念数据抽象为外界提供了仅有的基本信息,在表示基本特征的过程中不包括实现细节。举个真实世界的例子,比如一本书。当你听到是书时,你不知道具体的细节,如页数颜射或者大小,但你明白书的概念、大概模样。这就是对书的抽象。抽象的概念是我们关注基本特征,而不是一个特定的具体特征。在Java中,抽象是使用抽象类和接口实现的。抽象类是使用abstract 关键字定义的。如果一个类声明抽象类,则不能被实例化(不能创建该类型的对象)。 要使用抽象类,必须从另一个类继承它。 抽象类中不一定.原创 2020-07-03 19:01:34 · 162 阅读 · 0 评论 -
JAVA之重写与重载
方法重写重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写。重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能根据需要实现父类的方法。下面是一个例子:class Animal { public void barking() { System.out.println("Hi"); }}class Dog extends Animal { public void barking() { .原创 2020-07-03 17:52:48 · 112 阅读 · 0 评论 -
JAVA之多态
多态多态是同一个行为具有多个不同表现形式或形态的能力。多态性是对象多种表现形式的体现。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。多态的优点1. 消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性多态存在的三个必要条件继承 重写 父类引用指向子类对象下面是一个例子,Cat 和 Dog.原创 2020-07-03 16:36:32 · 73 阅读 · 0 评论 -
JAVA之继承
继承是使用一个类获取另一个类的属性(方法和变量的过程)。通过继承,信息被放置在更容易管理的层次上。继承另一属性的类称为子类(也可以称之为派生类)。其属性被继承的类称为父类(基类或超类)。在Java中,通过extends关键字可以申明一个类是从另一个类继承而来的。当一个类从另一个类继承时,它继承了所有父类的非私有变量和方法。提示:protected 访问修饰符,protected 使成员只对子类可见。构造函数不是成员方法,所以不会被子类继承。然而,父类的构造函数在子类..原创 2020-07-03 16:34:47 · 102 阅读 · 0 评论