- 博客(35)
- 收藏
- 关注
原创 多线程的线程安全
当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制 synchronized 来解决。使用 synchronized 修饰的方法,就叫做同步方法,保证A线程执行该方法的时候,其他线程只能在方法外等着。同步方法中的同步锁是谁呢?对于实例方法,同步锁就是 this。对于 static 方法,我们使用当前方法所在类的字节码对象(类名.class)。
2023-09-18 22:35:57
285
原创 Map接口
public class TreeMap<K,V> //定义TreeMap方法extends AbstractMap<K,V> //继承的父类implements NavigableMap<K,V>, Cloneable, Serializable //接口。
2023-09-06 22:22:44
146
原创 集合与集合框架
集合集合框架Java集合框架提供了一套性能优良,使用方便的接口和类,它们都位于java.util包,其主要内容和彼此之间的关系如下图所示:集合框架的三大类接口:Map接口,List接口和Set接口。Collection接口collection方法Iterable接口以及Iterator接口Iterable接口用for-each来遍历元素。Iterator接口此接口的两个方法:.hasNext() 判断是否存在下一个可以访问的元素,如果仍有元素可以迭代,则返回true。
2023-09-05 23:10:08
116
原创 异常的捕获和处理
一:异常概述1:认识异常异常就是我们平时在编写代码的过程中产生的错误,比如说编译时报错或者是在运行时产生的一些异常,那么今天我们就一起来深就异常,它到底有哪些,是怎么分的,以及怎么去解决。2:异常体系结构如图我们可以看到所有异常类都是Throwable的子类,而Throwable佩生出了两个字类,Error 类 和 Exception类程序中常见的异常java.lang.CloneNotSupportedException 不支持克隆操作异常,一般是被克隆的类未实现 Cl
2023-08-30 22:36:37
174
原创 Java中的接口
定义接口使用interface修饰符。[修饰符] interface 接口名{//接口成员实现接口使用implement关键字。public 类名 implement 接口名{实现方法普通方法属性一个类可以实现多个接口,各接口之间用逗号分隔。接口的实现类允许包含普通方法。在实现抽象方法时需要指定public权限,否则会产生编译错误。实现接口的类必须实现接口中所定义的所有抽象方法,即使这个类中不使用,也要实现。通常用空方法体实现子类不需要的抽象方法。
2023-08-29 19:57:33
49
原创 抽象类,内部类,匿名类
public abstract class 类名{修饰符 数据类型 变量名;修饰符 abstract 返回值类型 方法名称(参数列表);修饰符 返回值类型 方法名称(参数列表){匿名类是没有明确的名称的类。
2023-08-29 00:42:01
110
原创 栈和队列的代码实现
for(i = 0;i < num-1;i ++){队列是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表。队列是一种先进先出的线性表。
2023-08-28 22:05:59
73
原创 字符序列(1)
多个字符按照一定的顺序组成的列表就叫做字符序列。Sting方法咱们在声明字符串时,使用字符串对象的方式来声明时使用的方法。共有 15 个构造方法名及描述1:Sting() 初始化新创建的String对象,使其表示空字符系列。2:String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的Sting3:String(byte[] bytes, Charset charset) 构造一个新的String用指定的字节的数组解码charset。
2023-08-22 21:14:57
805
原创 继承二 实例化顺序
类与类之间有三大关系,is,use,has,而继承则表达的是is这一关系。Java类中只支持单继承,即一个类只能有一个直接父类。继承是指在新类在不增加自身代码的情况下,通过从现有类中继承其属性和方法,来实现充实自身内容,这种现象或行为称为继承。
2023-08-17 20:28:38
56
原创 面向对象二
调用方法:this用于访问本类中的方法,包括从父类继承的方法。调用构造方法:this([参数列表])表示调用本类的构造方法,必须放在构造方法的首行。调用手段:this.字段:调用当前对象的字段,包括从父类继承的字段。使用:this中实例方法中可以使用,在static方法中不能使用,每个类都有this其他区别:this表示当前对象。
2023-08-16 20:53:10
43
原创 面向对象的抽象数据类型
类修饰符] class 类名{ classBody }[访问修饰符] 数据类型 字段名;[访问修饰符] 方法名 ([参数列表]){//省略方法体的代码构造方法的分类:默认构造方法和自定义构造方法。语法解析构造方法没有返回值默认的构造方法没有参数构造方法的方法名必须与类名相同。例题为person1类定义一个构造方法int age;this.name = "喵星人";。
2023-08-15 21:23:19
120
原创 快速排序:
快速排序用到了分治思想,同样的还有归并排序。乍看起来快速排序和归并排序非常相似,都是将问题变小,先排序子串,最后合并。不同的是快速排序在划分子问题的时候经过多一步处理,将划分的两组数据划分为一大一小,这样在最后合并的时候就不必像归并排序那样再进行比较。但也正因为如此,划分的不定性使得快速排序的时间复杂度并不稳定。快速排序的基本思想:通过一趟排序将待排序列分隔成独立的两部分,其中一部分记录的元素均比另一部分的元素小,则可分别对这两部分子序列继续进行排序,以 达到整个序列有序。
2023-08-14 23:44:05
47
原创 方法和递归
在同一个类中,方法名相同,但是方法的参数,顺序,类型不同,且与返回值无关,则构成了方法的重组。递归是方法自己调用自己,要在方法体内存在结束调用的代码,且必须要有结束条件。
2023-08-14 21:57:48
39
原创 数组工具类(Arrays类)的介绍
大多数开发人员都有可能用到的相同的功能,比如数组排序,是不是每个开发 人员都要写一遍代码呢?对于开发人员共性的需求,JDK已经提供相应的功能,我们把JDK提供的共性需 求功能的类称为工具类 JDK中的工具类有很多。
2023-08-10 22:08:02
209
原创 二维数组
二维数组的长度是数组的元素个数,每个元素就是一个一维数组,而且这个一维数组的元素个数可以不一样。二维数组是由多个一维数组组成的数据结构,它可以理解为一个表格或者矩阵。每个一维数组称为行,而每个元素则是列。二维数组可以用来存储和处理具有多个维度的数据。在编程中,二维数组的定义通常是通过指定行数和列数来创建。这样就创建了一个3行4列的整型二维数组。
2023-08-10 21:50:25
352
1
原创 Java的二分查找
二分查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的算法。它的基本思想是通过将数组分成两部分,并与目标元素进行比较,从而确定目标元素在数组中的位置。
2023-08-10 20:22:55
112
1
原创 数组元素排序
冒泡排序的算法是通过对相邻元素的大小进行比较,每一轮将一个最小或最大的数放到队列的最后面。插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素插入到已经排好序的部分中的适当位置,从而得到一个新的有序序列。具体步骤如下:将待排序序列的第一个元素视为已排序序列,将第二个元素到最后一个元素视为未排序序列。从未排序序列中取出第一个元素,将其与已排序序列中的元素从后往前依次比较,找到合适的位置插入。重复步骤2,直到未排序序列中的所有元素都被插入到已排序序列中。
2023-08-08 19:01:21
152
原创 Java循环结构
1:while 循环结构(1)流程图2:do—while 循环结构(1)流程图(2)例题:求1~100的和3:for循环结构(1)流程图(2)求一个乘法表格
2023-08-03 22:44:27
40
原创 Java选择结构
在switch语句中,平时只会输出简单的值,加yield时,我们可以返回复杂的·语句。例题:输入学生成绩,若大于90,则为优秀,若再80~90,则为良好,若低于·80,则为继续加油。例题:从键盘上输入一个年份,判断输入的年份是否是闰年。闰年规律:四年一闰,百年不闰,四百年再闰。下图中我们将case 8 的break删掉了,我们看到程序则会一直运行,一直到出现break;例题:输入一个学生成绩,如果是成绩超过60分,则显示及格,反之不及格。例题:输入一个学生成绩,如果是成绩超过60分,则显示及格。
2023-08-02 20:16:45
52
1
原创 Java的输入输出以及常用运算符
next()方法无法获取带有空格的字符。(1)原码 原码是一种最简单的机器数表示法,其中最高位表示符号位,其余位表示该数的二进 制的绝对值。(1)原码 原码是一种最简单的机器数表示法,其中最高位表示符号位,其余位表示该数的二进 制的绝对值。(1)算术运算符有 + - * / % ,其中 * 表示乘 法, / 表示除法, % 表示取余数。(2) 反码 正数的反码与原码相同,而负数的反码是其原码除符号位外,按位取反的结果。(2) 反码 正数的反码与原码相同,而负数的反码是其原码除符号位外,按位取反的结果。
2023-08-01 20:55:46
1712
2
原创 Java基础知识点(一)
标识符由字母、数字和下划线,美元符号以及部分Unicode字符集组成。标识符必须以字母或下划线开头或美元符号开头,后面可以是任何字母这些,但是不能以数字打头。标识符不能是关键字或布尔值和null。标识符区分大小写,没有长度限制。
2023-07-31 22:15:10
64
1
原创 MySQL约束实操练习
1 | 林冲 | 1981-10-10 | 男 | 2800 | 1 || 林冲 | 2800 || 1 | 林冲 | 1981-10-10 | 男 | 2800 | 1 || 1 | 林冲 | 1981-10-10 | 男 | 2800 | 1 || 1 | 林冲 | 1981-10-10 | 男 | 2800 | 1 |
2023-07-29 20:49:18
295
原创 MySQL查询
select-->distinct-->from>--where-->group by-->having-->聚合函数-->order by-->limit。内连接查询时,条件用 on 连接,多个条件使用 () 将其括起来.其实就是求交集。select 列1, 列2, (聚合函数) from table_name group by 列1, 列2 having 分组后条件;外连接查询时,条件用 on 连接,多个条件使用 () 将其括起来. 左外连接表示以左表为主表,右外连接表示以右表为主表。
2023-07-28 19:15:30
82
1
原创 MySQL约束(二)
A表中列的值来自于另外一张表B的主键或唯一键的列称为 外键FK,将被引用值得表称为 主表或父表,将引用值得表称为从表或子表。例如: emp 表中有 deptno 列,值来自于 de pt 表的 主键 deptno。dept 是主表, emp 是从表。
2023-07-28 17:44:01
218
1
原创 MySQL的约束
唯一约束里面,设置为唯一约束的列可以为空值,但是不能重复。在唯一约束中,当创建和表结构一样的表时候,如果是….like..,则连约束条件这些都一样,如果是as,则只是复制了结构,没有复制约束条件这些。自增长列是数值(int,float,double)类型的,其值是有数据库自动维护的,是永远不会重复的。注意:当一个表中自增长列和主键列是同一个列名时,添加数据的时候如果不主动设置,会按照自增长列的步长自己添加。alter table 表名称 modify column 列名 列类型 default 默认值;
2023-07-27 23:34:05
452
1
原创 HTTP和HTTPS的区别与原理
HTTP是有请求和响应构成的。在HTTP协议中,由客户端发起请求,服务器进行响应的过程。客户端发起请求(http://域名),本来是想发给服务器端例如百度,服务器收到请求,作出回应,但是如果有人在中途截取信息,将域名的IP地址作出改变,于是客户端便收到了错误的信息,存在很大的安全隐患。
2023-07-26 17:03:56
115
1
原创 总结 阿里云安装宝塔安装
一个是局域网IP地址(在电脑输入“windoes+r”进入命令提示符,输入ipconfig可以查看)在局域网内部可以相互访问。第二个是本机自带的IP地址,为127.0.0.1,只能自己用,别人无法访问,不能用来上网。1:云服务器的好处:可以获得公网的IP地址。4:有网络的地方一定有服务,有服务的地方必定会产生协议,有协议的地方必定有端口。3:局域网IP能不能上网取决于局域网的路由器能不能连接上上网的路由器。(4)前往云服务器的控制台,创建安全组。三:云服务器的建立和宝塔的连接。(1)进入阿里云的登陆页面。
2023-07-25 22:46:31
163
原创 MySQL多表查询
mysql> select cart.create_time,sum(goods.price*cart.num) as 营业额 from cart,goods where goods.good_no=cart.goods_no group by cart.create_time order by 营业额 DESC;-> where account.name='张三' and cart.goods_no=goods.good_no and account.id=cart.account_id;
2023-07-25 08:52:24
50
原创 MySQL基本操作(2)
是对数据进行分组,分组时,表中有相同值的分为一组。第一个参数0是表示从第几条开始查询 (这里的 0 是可以省略不写的);两种方式进行排序,可以有多个排序条件。去重必须结果集中每个列的值都相同。分组条件以及聚合函数外的其他列。关键字对查询的结果集进行去重。备份数据库的所有表结构和数据。备份多个数据库的表结构和数据。备份所有数据库的表结构和数据。备份多个数据库的所有表结构。列1, ... , 列n。列1, ... , 列n。后面不够的,有多少写多少;分组后的结果集进行筛选。备份数据库的所有表结构。
2023-07-23 17:17:32
37
原创 MySQL易错点
mysql> select product_id,pricep,concat(product_category,'-',product_name)【product_name本来就是列名,不需要加单引号】as product from products;4:# 将商品类别和名称拼接起来并显示其余的信息。7:给某个表添加某一列是ALTER TABLE …将商品的名字,商品的类别全部转换成小写形式并展示所有信息。6:CREATE TABLE 是用来创建表的。Alter table 是修改表的结构。
2023-07-22 22:55:01
117
1
原创 MySQL基本语句
CRUD(添加(Create)、查询(Retrieve)、修改(Update)、删除(Delete))操作。例子:INSERT INTO dept(deptno,deptname)VALUES(5,'安保部');create user '... '@'localhost' identified by '加密码'set password for '用户名'@'主机名' = '新密码';`in(a, ... ,b)`: 表示在 a 及 b 这些值中都可以。DROP USER '用户名'@'主机名';
2023-07-21 23:01:24
71
1
原创 MySQL·相关知识点(一)
3>. 使用命令将目录调整到`D:\kaifamiao\enviroments\mysql-8.0.30-winx64`目录下。1. `1initialization.bat` 初始化。2. `2install.bat` 安装 `mysql` 服务。3. `3startup.bat` 启动`mysql ` 服务。> `6uninstall.bat` 为卸载服务命令。> `4reboot.bat`为重启服务命令。解决方法:检查是否在`bin`目录下执行此命令。> `5stop.bat`为停止服务命令。
2023-07-20 22:34:51
32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人