![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
阿祥l
励志成为百万博主
展开
-
static和final的区别
static:是静态的意思;final:是最后的意思;区别:1.final可以修饰类,方法和变量,但是static只能修饰方法和变量;2.final可以修饰全局变量和局部变量,但是static只能修饰全局变量,不能修饰局部变量;3.final不可以修饰代码块,但是static可以修饰代码块。...原创 2021-12-09 17:59:02 · 5627 阅读 · 3 评论 -
冒泡排序来啦
不管是学习java基础进行测试,还是工作面试的笔试题,有一个内容都是比较重要的,那就是冒泡排序:关注阿祥一起进步啊原创 2021-11-30 00:06:00 · 126 阅读 · 0 评论 -
BIO、NIO、AIO的关系
BIO是同步阻塞式IO,是传统的IO,优点是:使用简单方便;NIO是同步非阻塞式IO,是传统IO的升级,服务器和用户通过通道通信,实现了多路复用;AIO是异步非阻塞式IO,是NIO的升级,也叫做NIO2,异步IO的操作基于事件和回调机制。...原创 2021-11-25 14:28:42 · 173 阅读 · 0 评论 -
使用java将数据导入excel表格中
1.使用创建一个工作簿;2.获取表中的页;3.从页中获取行;4.从行中获取表格;5.在表中添加数据;6.写一个输出流;7.将数据传入表格。Cell cell0 = row.createCell(0);从这里可以看出下标从0开始。写完执行代码就可以导出数据到excel中了...原创 2021-11-24 18:48:37 · 2484 阅读 · 0 评论 -
在类 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)
出现这个异常的时候如果说你是写有main方法的话很大可能就是没保存写的代码就去执行程序了,Ctrl+S保存一下就好了。希望可以帮助大家,点赞关注一下我大家一起学习。原创 2021-11-18 09:13:28 · 2149 阅读 · 1 评论 -
session 的工作原理
首先 先说session是存储在服务器上的一个值;每次用户在登录完成之后,服务器就会给该用户创建一个与之对应的session id,然后把该session id 发送给用户,咋样用户每次访问浏览器的时候就会对比这个session id 去服务器中找到对应的session id,然后就可以正常工作了。用户登录账户------》服务器给用户创建session id,并发送给用户------》用户接收session id,访问浏览器的时候找到服务器中对应的session id ------...原创 2021-11-15 20:05:46 · 85 阅读 · 0 评论 -
线程的五大状态和运行流程
五大状态分别为:创建状态----就绪状态---运行状态----阻塞状态-----死亡状态;流程:第一步:先用new 创建一个线程 这时候就是创建状态;第二步:我们没有使用这个线程,他就在等待被执行,这个时候是就绪状态;第三步:我们使用了start()方法去执行这个线程,这时就是运行状态;第四步:比如我们使用sleep()方法让他休息一下,这个时候就算是阻塞状态;第五步:线程任务完成,死亡了。这是我对线程的理解,希望对大家有用,点赞关注,学习更好开发知识。..原创 2021-11-13 15:24:33 · 1191 阅读 · 0 评论 -
在MyBatis中#{}和${}的区别,写MyBatis语句要注意什么
#{}代表相当于是一个占位符;${}代表是直接拼接;尤其是在拼接列名的时候一定要用${}直接拼接不然使用#{}会在获得的值加上一个单引号,SQL语句就报错了。例如:希望能对大家有帮助。...原创 2021-11-12 21:15:41 · 236 阅读 · 0 评论 -
Map中的key和value
我们都知道的是map中可以存储一个null键和多个null值,并且键是唯一的不能重复,值可以重复。如果键重复了 那么后输出的会覆盖前面输出的。今天我发现了一个奇怪的地方,就是他的返回值,那么看下面的代码:map中的返回值总结: 如果没有重复的key,那么返回值value就是null; 如果有重复的key,那么会使用新的value值覆盖掉原来key中的值,但是返回值却是被覆盖的value值。...原创 2021-11-10 10:41:00 · 3290 阅读 · 0 评论 -
泛型的使用
泛型是一种未知的数据类型,泛型也可以当作是一个变量,可以接收数据类型。常见的有:E:element(元素);T:type(类型)。定义泛型好处: 1.避免了使用时类型转换异常,定义的是什么数据类型取出的就是什么数据类型; 2.把运行时错误转换成编译时错误。、弊端: 只能存储固定的数据类型。不定义泛型:好处: 可以存储不同类型的数据,默认的数据类型就是Object。弊端: 在使用时会出现异常,不安全。...原创 2021-11-09 21:20:04 · 78 阅读 · 1 评论 -
接口的实现
接口在我们讲解和抽象类的区别的时候都会说:接口只有抽象方法 不能自身实现,而抽象类可以有实现;但是在今天我发现在jdk1.8以后 接口本身也可以实现方法了,只要使用default 就可以写实现了。...原创 2021-11-03 10:32:02 · 64 阅读 · 0 评论 -
为 什 么 说 Synchronized 是 一 个 悲 观 锁 ?乐 观 锁 的 实 现 原 理又 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性 ?
1.Synchronized 显 然 是 一 个 悲 观 锁 , 因 为 它 的 并 发 策 略 是 悲 观 的 :不 管 是 否 会 产 生 竞 争 , 任 何 的 数 据操作 都 必 须 要 加 锁 、 用 户 态 核 心 态 转换 、 维 护 锁 计 数 器 和 检 查 是 否 有 被 阻 塞 的 线 程 需 要 被 唤 醒 等 操 作 。2.随 着 硬 件 指 令 集 的 发 展 , 我 们 可 以 使 用 基 于 冲 突 检 测 的 乐 观 并 发 策 略 。先 进 行 操 作 , 如原创 2021-10-23 00:32:27 · 444 阅读 · 0 评论 -
JDBC的PreparedStatement是什么?
PreparedStatement对象代表的是一个预编译的SQL语句。用它提供的setter方法可以传入查询的变量。由于PreparedStatement是预编译的,通过它可以将对应的SQL语句高效的执行多次。由于PreparedStatement自动对特殊字符转 义,避免了SQL注入攻击,因此应当尽量的使用它。...原创 2021-10-01 14:01:34 · 303 阅读 · 0 评论 -
JDK,JRE,JVM三者关系
1.jdk是JAVA程序开发时用的开发工具包,其内部也有JRE运行环境JRE。2.JRE是JAVA程序运行时需要的运行环境,就是说如果你光是运行JAVA程序而不是去搞开发的话,只安装JRE就 能运行已经存在的JAVA程序了。3.JDk、JRE内部都包含JAVA虚拟机JVM,JAVA虚拟机内部包含许多应用程序的类的解释器和类加载器等等。...原创 2021-10-01 00:02:06 · 276 阅读 · 0 评论 -
execute,executeQuery,executeUpdate的区别是什么?
1.Statement('steɪtmənt)的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。2.Statement的executeQuery(Stringquery)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来..原创 2021-09-29 16:51:37 · 263 阅读 · 0 评论 -
ArrayList、LinkedList、Vector ˈvektə(r)的区别。
ArrayList,Vector底层是由数组实现,LinkedList底层是由双线链表实现,从底层的实现可以得出它们的性能问题。 ArrayList,Vector插入速度相对较慢,查询速度相对较快,而LinkedList插入速度较快,而查询速度较慢。再者由于 Vevtor使用了线程安全锁,所以ArrayList的运行效率高于 Vector。...原创 2021-09-28 18:48:07 · 52 阅读 · 0 评论 -
String和StringBuffer、StringBuilder的区别是什么?
1.可变性:String类中使用字符数组保存字符串,private final char value[],所以string对象是不可变的。StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串, char[] value,所以这两种对象都是可变的。2.线程安全性:String中的对象是不可变的,也就可以理解为常量,所以线程安全;AbstractStringBuilder是...原创 2021-09-27 17:09:22 · 845 阅读 · 0 评论 -
== 和 equals 的区别是什么
== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址)equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。情况2:类覆盖了 equals()方法。一般,我们都覆盖 equals()方法来让两个对象的内容相等;若它们的内容相等,则返回 tru..原创 2021-09-26 14:14:45 · 77 阅读 · 0 评论 -
面向对象的三大特性
封装、继承、多态;1.封装: 隐藏对象属性和实现细节,只提供公共的访问方式,将变化隔离,提高安全性和复用性;2.继承: 继承是使用已存在的类的定义的基础去创新新的类的技术,新的类的定义可以增加新的 方法和功能,也可以继承父类的功能,但是不能选择性的继承父类;继承是多态的前提;3.多态: 所谓多态就是指程序中定义的引用变量的具体类型和调用方法在编程时不确定的,只有在代码运行过程中才能确定;即一个引用变量到底会指向哪个类的实例对...原创 2021-09-24 09:33:31 · 47 阅读 · 0 评论 -
final的作用
定义:用于修饰类、属性和方法;1.被final修饰的类不可以被继承;2.被final修饰的方法不可以被重写;3.被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的。...原创 2021-09-23 09:03:25 · 65 阅读 · 0 评论 -
抽象类与接口
1.什么是抽象类? 在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都只是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑补充它,那么这样的类我们称它为抽象类。2.接口是什么? 接口是比抽象类更抽象的一种结构或者类。3.接口和抽象类的区别 抽象类可以有默认的方法实现完全是抽象的。 接口根本不存在方法的实现。抽象类中可以有已经实现了的方法,也可以有被abstract修饰的抽象方法,因为存在抽...原创 2021-09-22 08:06:53 · 42 阅读 · 0 评论 -
类与对象
1.类是对象的抽象,对象是类的实例。2.类是对具有相同属性和行为的一组对象的抽象与统一描述,是用户自定义的数据类型。3.类的定义包括行为和属性两个部分。(属性以数据表示,行为通过函数实现。)...原创 2021-09-19 16:45:27 · 361 阅读 · 0 评论