- 博客(26)
- 收藏
- 关注
原创 网络原理-初识
⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同 轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵 从的⼀组约定、规则。:在键盘上输入“hello”,按下发送键--->QQ程序读取到输入框的内容(hello),把“hello”构造成一个“应用层数据包”--->调用传输层的接口,把上述数据包交给传输层(应用层数据包的内容格式、字段含义、组织方式等,都由对应的。
2025-10-23 21:41:54
982
原创 Java网络编程套接字
数据的发送⽅进程,称为发送端。发送端主机即⽹络通信中的源主机。:数据的接收⽅进程,称为接收端。接收端主机即⽹络通信中的⽬的主机。:发送端和接收端两端,也简称为收发端。注意:发送端和接收端只是相对的,只是⼀次⽹络数据传输产⽣数据流向后的概念。
2025-10-22 23:26:28
869
原创 文件 IO
我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时, 往往不是保存成⼀个整体,而是独立成⼀个个的单位进行保存立的单位就被抽象成文件的概 念,就类似办公桌上的⼀份份真实的文件⼀般。
2025-10-18 19:59:49
972
原创 深入理解Java锁策略与CAS机制
目录一. 常见锁策略1.1 乐观锁 VS 悲观锁1.2 重量级锁 VS 轻量级锁1.3 自旋锁 VS 挂起等待锁1.4 公平锁 VS 非公平锁1.5 可重入锁 VS 不可重入锁1.6 普通互斥锁 VS 读写锁二. 对于synchronized的锁情况2.1 锁升级2.2 锁消除2.3 锁粗化三. CAS3.1 什么是CAS3.2 CAS中的ABA问题四. 原子类五. 自旋锁六. JUC中常见的类/接口6.1 Callable 接口6.2 ReentrantLock 类6.3 原子类6.4 线程池6.5 信号
2025-10-13 08:00:00
838
原创 Java多线程案例(超详细)
在Java中,设计模式是指在软件开发过程中,针对反复出现的问题总结归纳出的通用解决方案,就像是一套经过验证的“最佳实践”。它就好比建筑领域的经典建筑设计图纸,遇到相似的建筑需求时,可参考这些图纸高效完成设计。
2025-10-09 08:00:00
771
原创 Java线程安全:synchronized锁机制详解
死锁指多个进程(或线程)在执行过程中,因争夺资源 ,导致各进程(或线程)都在等待其他进程(或线程)释放已占用的资源,从而相互等待,无法继续推进的一种僵持局面。线程B持有资源2,等待资源1,双方都不释放已持有的资源,就形成了死锁。synchronized(Object obj){ } 中加锁的对象(obj)是谁,对加锁中的内容是没有影响的,只要是对同一个对象加锁即可。总之:无论那种写法,synchronized()针对什么对象加锁不重要,最重要的是,两个线程是否针对一个对象加锁。任意打破一点即可避免死锁。
2025-09-24 19:11:42
909
原创 深入理解Java线程:从启动到中断
下面是中断线程的一种方式,但是在我们在日常开发中一般不会使用这种方法,在后面会提出中断线程更科学的方法while(!try {});t.start();System.out.println("是否中断线程,中断请输入0");if(n==0){下面是中断线程要用到的方法注意:Thread.currentThread()是一个静态方法,它能返回一个引用,这个引用指向当前正在执行的线程while(!这两行代码可以改为,效果是一样的。
2025-09-13 19:56:04
1054
2
原创 深入理解Java线程:从创建到观察
() -> {... } 是 Lambda 表达式, () 表示 run 方法没有参数, {... } 内是 run 方法的具体实现逻辑,这里通过循环打印信息模拟线程任务。调用Thread类的start()方法,该方法执行时会调用操作系统API在系统内部建立一个线程,当线程建立好后,就会自动执行上面重写的run方法。- 调用 thread.start() 启动线程,线程进入就绪状态,等待 CPU 调度执行,同时主线程继续执行自己的逻辑,实现多线程并发。
2025-09-10 23:31:26
807
原创 【Java 数据结构】List,ArrayList与顺序表
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储,ArrayList就是顺序表的一种实现形式2.2 实现自己的顺序表在学习ArrayList之前,我们可以先试着写一个自己实现的顺序表,能帮助我们在使用ArrayList的方法以及了解它时更加得心应手在集合框架中,ArrayList是一个普通的类,实现了List接口。具体框架如下:注意:ArrayList是以泛型的形式实现的,使用时必须要先实例化。
2025-04-26 23:23:10
1202
原创 【Java 数据结构】泛型
泛型是一种在编程语言中允许代码在定义时使用参数化类型的特性,它使得代码可以处理不同类型的数据,同时保持类型安全,提高代码的复用性和可维护性,比如在Java中可以通过泛型定义一个能存储任意类型数据的集合类。
2025-04-24 23:22:17
750
原创 【JavaSE】对象的克隆,内部类与object类
被static修饰的内部类就是静态内部类局部内部类可以定义在外部类的方法体内或者{ }中,一般使用的较少int a=10;}.func();匿名内部类中Students这个位置可以是类,抽象类,也可以是接口匿名内部类当中可以定义和正常类一样的成员变量执行语句时,可以执行类以外的变量,但是这个变量不能被修改(在任何位置被修改都不行)在执行语句时,对于匿名内部类里面的成员变量,如果是在方法的外部被定义的变量,那么在方法内部可以修改,在方法外部不能被修改。
2025-04-10 17:47:55
720
原创 【javaSE】继承与多态
当需要对共同的属性或方法进行修改时,只需在父类中进行修改,所有子类都会继承这些修改,保证了代码的一致性,降低了维护成本。同时,通过继承可以方便地扩展新的功能,新的子类可以在继承父类的基础上添加自己特有的属性和方法,而不会影响到其他已有的类。
2025-03-26 22:20:11
982
原创 【javaSE】类和对象(上)
面向对象是一种基于对象概念的编程思想与方法学,旨在以更贴近现实世界的方式进行软件开发。它将现实中的事物及其关系抽象为程序中的对象,把数据和操作数据的方法封装在对象内部,通过类来创建对象,利用继承实现代码复用与扩展,借助多态让不同对象对相同消息做出不同响应,以此构建出结构清晰、易于维护和扩展的软件系统,有效提升软件开发的效率与质量。在Java中,类是一种抽象的数据类型,用于创建对象,其定义包括类名、成员变量、构造方法和成员方法等部分。class为定义类的关键字, 定义一个新类必须用到 class。
2025-03-16 00:27:57
780
原创 【JavaSE】数组的打印,拷贝以及元素的查找
数组当中存储的是基本类型数据时,不论怎么拷贝基本都不会出现什么问题,但如果存储的是 引用数据类型,拷贝时需要考虑深浅拷贝的问题,关于深浅拷贝在后续详细给大家介绍。能够更方便的完成对数组的遍历。在编程中,数组的拷贝是指创建一个与原数组内容相同的新数组。给定一个数组,再给定一个元素,找打给元素再数组中的坐标。在使用for循环时,我们需要获得数组元素的个数---• 如果相等,即找到了返回该元素在数组中的下标。• 如果小于,以类似方式到数组左半侧查找。• 如果大于,以类似方式到数组右半侧查找。
2025-03-05 17:47:15
1054
1
原创 【javaSE】方法的使用
方法就是一个代码片段,类似于c语言中的“函数”1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用,⼀份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发,不必重复造轮子.方法语法格式书写方法的示例实现一个两个整数相加的方法注意修饰符:现阶段直接用public static 固定搭配返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回类型,必须写成viod方法名字:采用小驼峰。
2025-02-28 14:06:25
724
原创 【javaSE】java输入输出与生成随机数字
具体来说,当你使用 Scanner 类读取年龄(例如 nextInt() 方法)后, nextInt() 方法会读取输入的整数,但会把输入整数后面的换行符( \n )留在输入缓冲区中。接着当你使用 nextLine() 方法读取姓名时, nextLine() 方法会读取输入缓冲区中残留的换行符,认为这是一个空行,从而直接结束读取,导致没有机会让你输入姓名,看起来就好像姓名读不到了。:额外调用一次 nextLine() 方法来清空输入缓冲区中的换行符,再去读取字符串类型的数据。
2025-02-28 12:25:33
600
原创 【javaSE】程序逻辑与控制
表达式1、表达式2、表达式4、表达式3-》表达式2、表达式4、表达式3-》表达式2、表达式4、表达式3-》...执行到continue语句的时候,就回来立刻进入下次循环(判断循环条件),从而不会执行到下方的打印语句。如果布尔表达式结果为true,执行if中的语句,否则执行else中的语句。表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3。先执行循环语句,再循环判断条件,循环条件成立则继续执行,否者循环结束。如果布尔表达式结果为true,执行if中的语句,否则不执行。
2025-02-26 13:31:55
843
原创 【JavaSE】初识Java
1.main方法示例通过上述代码,我们可以看到一个完整的java程序结构,Java程序得结构有如下三个部分组成:源文件注意:1.类的内容要包含字画在花括号里面。2.在一个源文件里面只能一个publik修饰的类,且源文件的名字必须与publik所修饰类的名字相同。类:类中带有一个或多个方法。方法必须在类的内部声明。方法在方法的花括号中编写方法应要执行的语句。
2025-02-23 14:18:45
884
1
原创 【javaSE】前言
学习的过程并非一帆风顺,那些复杂的语法、抽象的概念,像一道道关卡横在面前。为了让自己的学习更有条理,也为了和同样热爱编程的伙伴们交流分享,我决定开启这个博客。最初接触Java,是因为听闻它强大的功能和广泛的应用,从Web开发到安卓应用,从大数据处理到人工智能,Java无处不在。在这里,我会如实记录学习中的每一个知识点、每一次踩坑与填坑,希望能和大家携手共进,在Java的世界里收获成长,一起成为更优秀的开发者。初来乍到,先做个自我介绍,我是一个正在Java学习之路上奋力奔跑的学生。
2025-02-23 12:39:13
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅