- 博客(27)
- 收藏
- 关注
原创 CSS常用选择器用法
复合选择器需要两种即两种以上的标签来进行选择,通常多种标签之间以空格隔开即可。需要在类之前加上".",来选择所有的类.从而进行渲染。id选择器需要再id的值前面加上#,来选择进行渲染。所有的div标签都会被设置成上述设置的式样。使用*来确保选择所有的标签,全部进行渲染。2.class选择器。
2024-03-04 09:49:54 337
原创 网络原理TCP之“三次握手“
众所周知,TCP是有连接的.当我们在客户端敲出socket =new Socket(serverIp,severPort)时,就在系统内核就在建立连接真正建立连接是在系统内核中建立的,我们程序员只是调用相关的api.在此处,我们把TCP的建立连接称为三次握手.系统在内核建立连接时如上图所示,总共有四次交互,但是在实际过程中,其中的两次交互能够合二为一,所以我们称作"这个所谓的建立连接的过程,本质上就是通信双方各自给对方发起一个syn,各自给对方回应一个ack.
2024-02-24 23:35:14 3378 3
原创 网络原理-UDP/TCP协议
在网络通信中,协议是非常重要的一个概念,在下面,我将从不同层次对协议进行分析.应用层T职业者与程序打交道最多的一层,调用系统提供的API写出的代码都是属于应用层的.应用层中有很多现成的协议,但是更多的,我们需要根据实际情况来进行制作自定义协议.自定义协议(网络传输的数据要怎么使用,数据是什么样的格式,里面包含什么内容)举一个简单的例子:1.请求,约定按照行文本的格式来进行表示,userid,position\n 一个请求以\n为结尾.多个字段之间以,分割1000,[经纬度]\n。
2024-02-24 00:23:45 1473 1
原创 谈谈CAS实现机制
CAS的ABA问题,CAS确保线程安全的底层原理在于比较他的值是否有变化,如果进行了变化,则重新对寄存器的值进行赋值,如果没有则完成,但是在这里,如果有一个线程穿插执行,记为线程三,线程一将0改到50,线程2将50改到0,线程三再拿到之前第一个线程的0,再次进行操作,这样看貌似没有什么错误,但实则线程三拿到的0并非是正确的0,当这个锁没有被线程持有的时候,即不等于null,则被当前的线程持有,如果已经持有线程了,则不会被当前线程持有,会一直进行while循环,通过这样的忙碌来等待效果.
2024-01-19 10:00:00 362
原创 JAVAEE-9-锁的策略
编译器优化的一种方式,编译器在编辑代码的时候,如果发现这个代码,不需要加锁,就会自动把锁给干掉.这里的优化是比较保守的,比如,就只有一个线程,在这一个线程里加锁了,或者加锁代码中,没有涉及到:成员变量的修改,就只是一些局部变量.都不需要加锁,(但是对于模棱两可的加锁,编译器也不确定,这里都不会消除)挂起等待锁就是重量级锁(同时也是一种悲观锁)的一种典型实现,进行挂起等待的时候,就需要内核调度器介入了,这一块需要完成的操作就更多了,真正获取到锁要花的时间也就更多了.这个锁可以适用于锁冲突激烈的情况.
2023-12-08 23:06:16 62 3
原创 JAVAEE-8-线程池
class MyThreadPoolExecutor{//自定义线程池//用来存储后续设定的线程,方便后续处理//用来存储执行任务的队列public MyThreadPoolExecutor(int n){//n为线程池创建出来的线程数目i<n;i++){try {//取出需要执行的任务,这里的队列使用take,是带有阻塞功能的//取出来之后进行使用});t.start();//这里进行放入任务。
2023-12-08 15:22:15 384 6
原创 JAVAEE-定时器案例
/创建计时器//此处为执行的任务代码//此处为执行任务的时间,此处的时间是一个相对时间,此处的时间是一个ms级别的时间戳//构造方法//获取时间的方法//提供任务执行的接口但是我们在定义计时器MYTIME这个类的时候,需要用一个优先级队列来进行存储task任务,因此task必须是可以进行比较的,不然会报错,因此,task这个类就要实现Comparable这个接口。
2023-12-08 13:36:17 263
原创 JAVAEE-6-多线程案例
某个类,在一个进程中,只应该创建出一个实例(原则上不应该有多个)使用单例模式,就可以对咱们的代码进行一个更严格的校验和检查.在这里,我们介绍实现单例的两种方式。
2023-12-03 20:01:56 26 2
原创 JAVAEE-5
它们和join的用途类似,使用wait是基于线程是随机调度的这一底层我们这里引入wait和notify,是为了能够从应用层面上,干预到多个不同线程代码的执行顺序.这里说的干预,不是影响系统的线程调整策略(内核仍然是无序随机调度)
2023-12-03 17:01:01 22 1
原创 JAVA-EE-3
1)给一个线程加锁,另外一个线程不加锁,也会存在线程安全问题2)给两个对象加上不同的锁对象,也会出现线程安全问题3)锁的一些其他写法//相当于同一个对象调用方法时,指向的this是同一个对象.仍然会出现锁竞争,锁冲突的问题JVM执行.class文件的时候,就要先把这个.class文件读取到内存当中,然后才能执行(类加载)JVM中就需要一些特定的数据结构,来表示加载好的数据.
2023-11-27 13:31:43 20
原创 JAVAEE-2
首先回顾一下线程和进程,进程是系统分配资源的基本单位,线程是调度执行的基本单位,一个进程可以包含多个线程,每一个线程都是一个单独的执行流,都有各自单独的任务,线程之间会相互影响,而进程不会,我们把线程称为轻量级进程,让同一个进程的多个线程去共享一份系统资源(创建线程,能够在一定程度上减少申请资源和销毁线程时释放资源带来的开销);每个线程都是一份单独的执行流,都可以单独的参与CPU的调度。共享一份系统资源(文件描述符表和内存指针)。
2023-11-24 22:43:55 24
原创 JDBC编程
实际开发中,绝大多数的情况下,都是通过代码来进行操作数据库的,手动操作数据库,只有少数的,调试,测试,验证环境才会涉及到主流的编程语言,基本都可以来操作数据库,大同小异的~Java中操作数据库,最基础的方式就是JDBC。
2023-11-11 23:26:12 1052 4
原创 MYSQL索引与业务
B树是一个N叉搜索树,要求有序,B树的一个节点可能包含了N个值,N个值划分出了N+1个区间,标题我们在使用B树查询的时候,论比较次数的话,要比二叉搜索树多很多,但是,这里关键点在于,同一个节点的key都是一次硬盘IO就读出来了,即使总的比较次数增多了,但是硬盘IO次数减少了.一次硬盘IO相当于内存中进行1w次比较B+树是在B树的基础上,又进行了改进.同样是N叉搜索树,每个节点包含了多个key,N个key划分出N个区间.
2023-11-11 21:31:56 34 1
原创 MYSQL中设置ID补充
实体,一些关键性质的对象,梳理清楚需求后,提取出关键的名字,一般来说,每个实体,都得安排一个表。我们引入了时间戳这个概念,即每时每刻都会生成一个数字,包括机器编号,库房编号,随机因子等等.还有一个概念,账户,搞一个账户表来描述这个实体,账户名,密码,注册时间,登陆地点。教务系统中,需要表示一个概念,学生(实体),搞一个学生表来描述这个实体.多个实体之间,需要理清楚关系,不同的关系下,有不同的设计表的方式.一个学生只能有一个账户,同时,一个账户也只能一个学生使用。一个学生,只能从属一个班级。
2023-11-09 23:34:54 47 1
原创 MYSQL中多表查询
先说一下什么是内连接,内连接就是在进行笛卡尔积的时候再给定的条件下双方都满足的情况下才展示的表,一般的,inner我们会省略不写.要求两个select查询的结果集,列数和类型必须进行匹配,列名不受影响,最终的列名就是select第一个列名。但是优原来的逗号改成了join关键字,并且之前表示条件的where现在要用on来表示了.另外在多表查询中,前面涉及到的去重,排序,limit也是同样涉及的.在这里我们要注意,要分别起别名,不然后面会出现歧义,会报错。实例:查询所有同学的总成绩,以及同学的个人信息.
2023-11-08 23:23:27 164 2
原创 MyarrayList自定义
/ 新增元素,默认在数组最后新增// 在 pos 位置新增元素// 判定是否包含某个元素// 查找某个元素对应的位置// 获取 pos 位置的元素// 给 pos 位置的元素设为 value//删除第一次出现的关键字key// 获取顺序表长度// 清空顺序表// 打印顺序表,注意:该方法并不是顺序表中的方法,为了方便看测试结果给出的。
2023-09-13 16:32:10 33
原创 我的第一篇博客
我叫郭宇轩,今年18岁,就读于东北大学,我希望自己可以参加acm竞赛,并且我会尽全力在acm拿奖,争取取得一个不错的成绩。我每天或多或少都会刷题,学习新的算法,争取不断提高的刷题能力,我打算周内一天至少刷半个小时,周末一天不下于三个小时。周末我应该学习两三小时,刷题三到四小时。我希望毕业之后可以进入字节跳动,华为或者小米这样的大厂。
2023-04-01 14:23:19 77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人