自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 代码的文字

【代码】代码的文字。

2025-03-24 09:52:28 96

原创 first

- 显示文本的 TextView --> <TextView android:id="@+id/tv_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, Android!

2025-03-10 21:17:34 295

原创 第一次作业

【代码】第一次作业。

2025-01-02 09:01:52 89

原创 第一次作业

/清除timer1中断标志。//设定timer1通道0比较模I##include "ioCC2530.h"//定义led灯端口。#define LED1 P1_0 // P1_0定义为P10。//时钟速度设置为32MHZ。//不产生定时器1的溢出中断。UARTOSendByte(*str++)//发送字节数据。//清除通道0中断标志。//清零UARTOTX中断标志。initUARTO(): //UARTO初始化。//使能定时器1的中断。EA=1://使能全局中断。

2025-01-02 09:01:01 374

原创 sadasd

【代码】sadasd。

2025-01-02 08:59:17 128

原创 DASDAS

【代码】DASDAS。

2025-01-02 08:56:55 79

原创 adasdas

【代码】adasdas。

2025-01-02 08:42:34 90

原创 Javaee的网络编程初识

局域网 :把若干个电脑连接到一起,通过路由器,进行组网广域网 :把很多很多局域网进一步的相连,构成更复杂的网络体系。IP地址:区分主机端口号:区分主机上不同的程序。

2024-11-26 18:57:53 1031

原创 文件io代码

【代码】文件io代码。

2024-11-20 19:13:38 137

原创 Javaee文件的io操作

创建文件,删除文件,创建目录,重命名文件。

2024-11-19 20:35:00 810

原创 Java多线程进阶详解

使用CAS编写代码,比较然后交换。大部分没问题,但在极端情况下有问题。比如银行取钱一个人账户是1000,取款500,假设是按照CAS的方式来执行的。按取款卡了一下,又按了一下。就有两个线程来进行操作,如果恰好有人转账500,则会出现bug。如何处理ABA问题呢?使用账户余额判定,本身就不科学。属于能加也能减。引入一个只能加的版本号,每次取钱或者存钱,版本号就+1,就可以进一步解决ABA问题。CAS的核心就在于说,通过数值没变=》中间没有别的线程覆盖。

2024-11-16 18:07:05 929

原创 Java多线程进阶(锁策略)

但是,如果在偏向锁状态下,有某个线程也尝试来对这个对象加锁,立马把偏向锁升级成轻量级锁(真的加锁,真的有互斥了),相当于立即确认关系,也就可以保证锁能够正常生效。synchronized即使悲观锁也是乐观锁,既是轻量级锁也是重量级锁,轻量级锁是自旋转实现,重量级锁就是挂起等待锁实现,是可重入锁,不是读写锁,是非公平锁。{系统本身线程调度的顺序就是随机的,如果需要实现公平锁,就需要引入额外的队列,按照加锁顺序把这些获取锁的线程的线程入队列,再一个一个的取}可以保证此处的++--操作是原子的。

2024-11-12 22:03:33 953

原创 Java多线程(线程池)

标准库线程池ThreadPoolExector,使用起来比较复杂,构造方法中,包含很多参数。

2024-11-11 19:54:16 384

原创 Java多线程(阻塞队列)

阻塞功能(1,队列为空,尝试出队列,出队列操作就会被阻塞,一直阻塞到队列不空为止2,队列为满,尝试入队列,入队列操作也会阻塞,一直阻塞到队列不满为止)队列有许多种:0.普通队列1.优先级队列2.阻塞队列(先进先出,线程安全,并且带有阻塞功能)3.消息队列 不是普通的先进先出,而是通过topic这样的参数来对数据进行归类,出队列的时候,指定topic,每个topic下的数据是先进先出的。(消息队列往往也会带有阻塞队列)通过代码来看一下阻塞队列/生产者消费模型。

2024-11-10 12:54:45 262

原创 Java多线程(wait等待通知机制)

系统内部。线程是抢占式执行,随机调度,程序员也是有手段干预的,通过“等待”的方式,能够让线程一定程度的按照预期来执行,无法主动让某个线程被调度,但是可以主动让某个线程等待等待通知机制,就能够解决上述问题通过条件,判定看当前逻辑是否能够执行,如果不能执行,就主动wait(主动进行阻塞)就把执行的机会让给别的线程了,避免该线程进行一些无意义的重试。

2024-11-09 14:32:04 780

原创 Java多线程(锁的操作)

首先我们要先了解线程不安全的原因1)线程在系统中是随机调度的,抢占式执行的2)多个线程同时修改同一个变量3)线程针对变量的修改操作,不是“原子”的4)内存可见性问题,引起的线程不安全5)指令重排序,引起的线程不安全。

2024-11-08 19:05:18 873

原创 Java多线程(线程的等待)

多个线程,调度顺序,在系统中,是无序的(抢占式执行)上述代码中,main和t线程,之间的结束顺序是不确定的,如果希望让代码里面的t能够结束,main结束,就可以在main中使用线程等待main线程中调用t.join就是让main等待t,也就是t先结束,main后结束。

2024-11-07 19:37:24 476

原创 Java多线程的几种常见写法

多线程的几种写法。

2024-11-06 08:21:40 368

原创 Java中的JDBC的详解

Java提出的一套关于数据库操作的接口各个数据库厂商要把自己的api对接到/适配到jdbc上程序员只需要掌握一套api就可以操作不同的数据库了数据库厂商提供的这个原生api适配到jdbc转换程序,称为“数据库驱动包”

2024-11-05 20:49:41 444

原创 MySql中的索引与事务

show index from 表名;

2024-11-05 20:30:21 795 1

原创 MySQL数据库增删改查基础操作(超长详解)

数据库的基本操作。

2024-10-17 15:50:29 1576 1

原创 MySQL数据库基础知识详解

尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其 如此,还不如设计时,将int类型提升为bigint类型。1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就 是-2^31到2^31-1。如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则 不创建。数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除。

2024-06-23 19:51:25 930

原创 Map和Set的知识点详解

线性探测的缺陷是产生冲突的数据堆积在一块,这与其找下一个空位置有关系,因为找空位置的方式就是挨 着往后逐个去找,因此二次探测为了避免该问题,找下一个空位置的方法为:Hi = (H0 +i² )% m, 或者: = (H0 - i²)% m。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一 个问题,冲突的发生是必然的,但我们能做的应该是尽量的降低冲突率。已知哈希表中已有的关键字个数是不可变的,那我们能调整的就只有哈希表中的数组的大小。

2024-06-22 13:24:19 1031

原创 优先级队列(堆)的知识点详解

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:2. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常。

2024-06-21 23:26:54 1167

原创 二叉树的基本操作以及一些二叉树相关例题

这个题我们首先进行结构上的判断,首先判断root节点是否为空,如果为空返回true,然后判断左右子树的节点,首先看左右子树是否为空,然后判断左右子树的值。这个题首先我们考虑他们是否相同,可以利用例题1的方法进行判断,第二种情况就是左边的是它的左子树,第三种情况就是右边的是它的右子树。第三种是两个都不为空,值不一样,不是两课相同的树。第一种是一个为空一个不为空,则不是两个相同的树。这个题需要找一个临时变量,然后进行交换。第二种是如果两个都为空,则是相同的树。这个例题需要首先考虑的是根的三种情况。

2024-06-20 18:14:00 301

原创 二叉树的知识详解

由于现在大家对二叉树结 构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按 照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。对于深度为K的,有n 个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。

2024-06-19 23:15:05 1091

原创 栈和队列的知识点详解

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。在实际工程中,使用Deque接口是比较多的,栈和队列均可以使用该接口。通过链表实现栈,可以使用单链表和双链表。

2024-06-18 18:19:06 980

原创 LinkedList与链表

(LinkedList的官方文档)LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。

2024-06-17 18:23:52 909 2

原创 Java中ArrayList和顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。

2024-04-22 19:11:39 1088 8

原创 Java包装类和泛型的知识点详解

一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化.方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { ... }

2024-04-11 19:25:52 791 12

原创 Java时间和空间复杂度的知识详解

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作 空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间, 在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计 算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

2024-04-02 19:57:33 703 5

原创 Java数据结构(初识集合框架)

Java 集合框架 Java Collection Framework ,又被称为容器 和其实现类 classes。其主要表现为将多个元素 container ,是定义在 java.util 包下的一组接口 interfaces element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、 管理 manipulate ,即平时我们俗称的增删查改 CRUD。

2024-03-26 19:05:00 390 1

原创 Java异常知识点详解

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构.如果自己创建了一个异常·类,继承exception的话,就是受查异常/编译时异常如果继承RuntimeExcption的话,此时这个异常就是非受查异常/运行时异常自定义的异常一定继承这两个异常。具体方式:1. 自定义异常类,然后继承自Exception 或者 RunTimeException2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因。

2024-03-26 11:17:36 1050 4

原创 Java-String知识点讲解(下)

String知识点讲解。

2024-03-20 19:50:08 1254 7

原创 Java-String知识点讲解(上)

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。

2024-03-18 19:32:38 837 3

原创 Java项目图书馆管理系统

Java图书管理系统的一些基本操作

2024-03-13 19:55:40 443 1

原创 Java接口

Object 类中存在一个clone方法,调用这个方法可以创建一个对象的“拷贝”,但是要想合法调用clone方法,必须要先实现Cloneable接口,否则就会抛出CloneNotSupportedExcption异常。Java中内置了一些很有用的接口,Cloneable就是其中之一。

2024-03-11 11:50:48 356 2

原创 Java抽象类和接口的知识点讲解

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类abstract关键字的用法。1,包含抽象方法的类,必须拿abstract修饰,此时这个类叫做抽象类。2,抽象类不能被实例化。3,如果一个普通类继承了一个抽象类,那么此时这个类,必须重写这个抽象方法。4,抽象类和普通类的区别在于1,可以和普通类一样有成员变量,成员方法。2,就是多了抽象方法。3,多了不能实例化。

2024-03-10 14:10:49 946 2

原创 Java多态深度讲解

在java中要实现多态,必须要满足如下几个条件,缺一不可1. 必须在继承体系下。2. 子类必须要对父类中方法进行重写。3. 通过父类的引用调用重写的方法 多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。静态绑定:也称为前期绑定(早绑定),即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代 表函数重载。动态绑定:也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体 调用那个类的方法。

2024-03-08 16:03:31 866 1

原创 Java继承与多态知识点详解

1,什么是封装对类外隐藏实现细节,体现了安全性,从实现上来说,使用private关键字。2,为什么要封装体现安全性。

2024-02-29 19:41:24 891 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除