Step1
文章平均质量分 95
第一部分
ANONYMOUS%
懒人博主,小白,新人
展开
-
(十三)java String和Date、Calendar
简介String类:代表字符串,Java程序中的所有字符串字面值(如”abc“)都作为此类的实例实现String是一个final类,代表不可变的字符序列字符串是常量,用双引号引起来表示,它们的值在创建之后不能更改String对象的字符内容是存放在一个字符数组value[]中的产生字符串的方式//本质上this.value = new char[0];当append和insert时,如果原来value数组长度不够,可扩容如上这些方法支持方法链操作方法链原理。原创 2023-08-03 08:43:47 · 165 阅读 · 0 评论 -
(十)java共享数据、内置锁、死锁
临界区代码段是每个线程中访问临界资源的那段代码,多个线程必须互斥地对临界区资源进行访问。线程进入临界区代码段之前,必须在进入区申请资源,申请成功之后进行临界区代码段,执行完成之后释放资源。Synchronized嵌套使用时,比如张三在A电话亭想去B电话亭,李四在B电话亭想去A电话亭,这时会发生死锁。a线程锁定一个资源,同时想获取b线程的资源,b线程锁定一个资源,同时想获取a线程的资源。相当于synchronized(class),临界区代码块中,多个线程共享访问的。比如对汽车的保养过程。原创 2023-07-28 20:46:21 · 43 阅读 · 0 评论 -
(五)java继承、重写、多态、装箱拆箱
Object类是所有Java类的根父类 如果在类的声明中未使用extends关键字指明其父类, 则默认父类为java.lang.Object类。原创 2023-07-23 18:31:55 · 36 阅读 · 0 评论 -
(十九)java Properties、泛型
在类声明时使用泛型约束这个类public class 类名 {}return t1;return t2;gen.getT();原创 2023-08-10 19:54:11 · 43 阅读 · 0 评论 -
(十七)java集合中的Vector、Set
方法来得到该对象的 hashCode 值, 然后根据 hashCode 值, 通过某种散列函数决定该对象在 HashSet 底层数组中的存储位置。如果两个元素的hashCode()值相等, 则会调用。ArrayList底层是什么?如果两个元素的 equals() 方法返回 true,但它们的 hashCode() 返回值不相等, hashSet 将会把它们存储在不同的位置,但依然可以添加成功。:返回左子树的元素,如果没有这样的元素,则 null。:返回右子树的元素,如果没有这样的元素,则 null。原创 2023-08-08 20:31:53 · 92 阅读 · 0 评论 -
(二十二)java URL、TCP/IP协议、面试题
其值所表示的并不是字节数,⽽是头部的所含有的32bit的数⽬(或者倍数),或者4个字节的倍数,所以TCP头部最多可以有60(4*15=60)。TCP传输过程中,在发送端出的字节流中,传输报⽂中的数据部分的每⼀个字节都有它的编号。TCP协议是基于IP协议的基础上传输的, TCP报⽂中的源端⼝号+源IP,与TCP报⽂中的⽬的端⼝号+⽬的IP⼀起,组合起来唯⼀性的确定⼀条TCP连接。控制位,确认序号的值表示⼀个准备接收的包的序列码,注意,它所指向的是准备接收的包,也就是下⼀个期望接收的包的序列码。原创 2023-08-15 20:14:10 · 56 阅读 · 0 评论 -
(六)java的static、final、单例模式、接口和匿名内部类
单例模式:要求程序中某一组件,在程序运行的整个生命周期中,存在线程安全问题,没有静态初始化。将一个类放在另一个类的。,这个类就叫做内部类。原创 2023-07-24 19:57:40 · 126 阅读 · 0 评论 -
(二十一)java数组流、对象流、Tcp和Udp、Socket
ObjectInputStream和OjbectOutputSteam:它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。序列化: 用类保存基本类型数据或对象的机制反序列化: 用类读取基本类型数据或对象的机制ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量网络通讯协议:即一定的规则(有两套参考模型)○ OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广。原创 2023-08-14 20:05:39 · 64 阅读 · 0 评论 -
(二十)java File类
由字节流组成的文件不可直接阅读,例如图像、音频、视频、压缩文件等。:它包含的是可读的文本,例如纯文本文档、代码文件、配置文件等。输出Output:将程序数据输出到磁盘,光盘等设备中。输入Input:读取外部数据到程序。原创 2023-08-11 20:09:54 · 42 阅读 · 0 评论 -
(十四)java正则表达式、枚举
应用场景:类的对象只有有限个,确定的。枚举可以看成一个类星期性别季节支付方式就职状态订单状态线程状态:新建 就绪 运行 阻塞 死亡values()返回枚举对象类的数组,可很方便地遍历所有枚举值可以把一个字符串转为对应发枚举类对象,要求字符串必须是枚举类对象的名字。toString()返回当前枚举类对象常量的名称i ++) {原创 2023-08-03 19:44:48 · 119 阅读 · 0 评论 -
(二十三)java 反射、JDK新特性
加载完类之后, 在堆内存的方法区中就产生了一个Class类型的对象( 一个类只有一个Class对象) , 这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子, 透过这个镜子看到类的结构, 所以, 我们形象的称之为: 反射。原创 2023-08-16 20:14:28 · 71 阅读 · 0 评论 -
(十八)java Map接口
Map 集合是以 Key-Value 键值对作为存储元素实现的哈希结构, Key是不可重复的, Value 则是可以重复的。Map 类提供三种 Collection 视图,在集合框架图中, Map 指向 Collection 的箭头仅表示两个类之间的依赖关系。可以使用keySet()查看所有的 Key,使用values()查看所有的 Value ,使用entrySet()查看所有的键值对。HashMap线程是不安全的。ConcurrentHashMap 是线程安全的。原创 2023-08-09 20:05:20 · 137 阅读 · 0 评论 -
(十六)Java注解、集合
数组的弊端数组的大小不能改变数组不便于进行添加、删除、插入等操作, 且效率不高。无法直接获取元素的个数数组中的元素是有序的、可以重复的。存储数据的特点单一。原创 2023-08-07 20:48:25 · 68 阅读 · 0 评论 -
(八)java异常处理、多线程
程序执行过程中,产生问题,因为异常的问题程序的正常的逻辑中断异常最顶层的类Throwable,异常可分为两类Error: Java虚拟机无法解决的严重问题。JVM系统内部错误、 资源耗尽等严重情况。:栈深度溢出异常,比如递归方法,没有退出条件:OOM内存溢出异常,栈、堆、方法区都会发生异常,但程序计数器不会发生。Exception:因编程错误或偶然的外在因素导致的一般性问题。RuntimeException:运行期异常,编译是不需要处理。原创 2023-07-26 21:09:10 · 63 阅读 · 0 评论 -
(九)java多线程退出、线程状态
操作系统的线程一个时间片的时间长度为 20 毫秒(比如 Windows XP),在一个 2GHz 的 CPU 上,那么一个时间片可以进行计算的次数是: 20 亿/(1000/20) =4 千万次,也就是说,一个时间片内的计算量是非常巨大的。由于 CPU 的计算频率非常高,每秒计算数十亿次,于是,可以将 CPU 的时间从毫秒的维度进行分段,每一小段叫做一个 CPU 时间片。进入者三个状态的线程都会让出CPU的使用权,另外,等待或阻塞状态被唤醒后,进入Ready状态,需要重新获取时间片才能接着运行。原创 2023-07-27 19:25:02 · 88 阅读 · 0 评论 -
(二十六)java 函数式接口、StreamAPI
只包含一个抽象方法的接口称为函数式接口可以在此接口上使用注解说明此接口为一个函数式接口可以通过lambda表达式来创建该接口对象。lambda表达式是对象,不是函数,他必须依附于函数式接口只要一个对象是函数式接口的实例,那么该对象就可以使用Lambda表达式来表示集合讲的是数据, Stream讲的是计算!stream不会自己存储数据Stream不会改变源对象,相反,他们会返回新的StreamStream操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。原创 2023-08-21 20:33:17 · 73 阅读 · 0 评论 -
(十二)线程池的创建、调度流程、拒绝策略和状态
(5)在核心线程都用完、阻塞队列已满的情况下,一直会创建新线程去执行新任务,直到池内的线程总数超出 maximumPoolSize。如果线程池的线程总数超时 maximumPoolSize,则线程池会拒绝接收任务,当新任务过来时,会为新任务。(4)在核心线程池数量已经用完、阻塞队列也已经满的场景下,如果线程池接收到新的任务,将会为新任务创建一个线程(非核心线程),并且立即开始执行新任务。实例用于暂时接收到的异步任务,如果线程池的核心线程都在忙,则所接收到的目标任务,缓存在阻塞队列中。原创 2023-08-01 20:26:54 · 87 阅读 · 0 评论 -
(十一)java线程通讯、JUC显示锁、生产和消费
Semaphore是一个许可管理器,可以用来控制在同一时刻访问共享资源的线程数量,Semaphore维护了一组虚拟许可,其数量可以通过构造函数的参数指定,线程在访问共享资源前,必须使用Semaphore的acquire方法获取许可,如果许可数量为0,该线程则一直阻塞,线程访问完成资源后,必须使用Semaphore的release方法去释放许可。在Java中,线程通信是指多个线程之间通过特定的机制来实现信息的传递和协调工作的过程。一把是写锁,是一种独占锁。读写锁的内部包含了两把锁:一把是。原创 2023-08-01 14:39:41 · 51 阅读 · 0 评论 -
(四)java面向对象基础
面向过程:强调的是功能行为,以函数为最小单位面向对象:面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。面向对象的三大特征封装(Encapsulation)继承(Inheritance)多态(Polymorphism)将大象装到冰箱里面向对象和面向过程步骤如下。原创 2023-07-20 21:16:01 · 21 阅读 · 0 评论 -
(七)java面向对象面试题
直接内存位于本地内存,不属于JVM内存,不受GC管理,但是也会在物理内存耗尽的时候报OOM。jdk1.4中加入了NIO(New Input/Putput)类,引入了一种基于通道(channel)与缓冲区(buffer)的新IO方式,它可以使用native函数直接分配堆外内存,然后通过存储在java堆中的DirectByteBuffer对象作为这块内存的引用进行操作,这样可以在一些场景下大大提高IO性能,避免了在java堆和native堆来回复制数据。会,加载到内存中的 class 数量太多或者体积太大。原创 2023-07-25 20:27:08 · 46 阅读 · 0 评论 -
(二)java循环、一维数组
(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。从键盘读入学生成绩,找出最高分,并输出学生成绩等级。取出数组中的值:数组名称【下标索引】:在内存开辟一块空间。原创 2023-07-18 18:28:25 · 53 阅读 · 0 评论 -
(一)java变量、数据类型、运算符、流程控制
变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。简单理解就是内存中一块空间的表示。由于该存储单元中的数据可以发生改变,因此得名为"变量"。原创 2023-07-17 20:06:20 · 32 阅读 · 0 评论 -
(三)java二维数组、数组中常用的算法、调试
其实,从数组底层的运行机制来看,其实没有多维数组。计算3个班级所有学生的平均分。对于二维数组的理解,我们。原创 2023-07-19 19:22:45 · 162 阅读 · 0 评论