![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
kk猫崽子
学习成日常
展开
-
vector和arraylist
arrayList:它是数组,最常用的类时list,它允许对数据快速访问;其缺点就是每个元素之间不能有间隔,当数组大小不能满足时,需要增加存储能力,就要将已有的数据复制到新的存储空间中;当对数据进行添加和删除时,需要对数组进行复制、移动;代价太大,它比较适合与查找和遍历数据时使用,而不适合插入和删除;vector:(通过数组实现,线程同步)特点就是在多线程程序中,同一时刻,只允许一个线程对他进行写操作,避免用于多个线程同时操作的而引起的数据不一致问题。原创 2022-09-10 17:28:01 · 148 阅读 · 0 评论 -
谈谈ArrayList和LinkedList的区别:
ArrayList:在底层数据结构来说,它使用索引在数组中搜索和读取数据是很快,获取数据的时间复杂度是O(1),但是删除数据的开销很大,它删除数据就要进行 数据重新排列,也就是说删除数据,就要将数据向后移动。它是一个自动增长的数组,当数组到达容量时,它会自动进行扩容(array)LinkedList:从数据结构来说它是使用双链表,这使得它在删除和添加数据时有很大的优势,在添加和删除数据的优势远远大于ArrayList,但是在进行get和set时较弱。原创 2022-09-10 17:02:24 · 236 阅读 · 0 评论 -
接口、为什么使用接口
某一事物对外提供的一些功能的声明,是一种特殊的Java类;:为了弥补单继承的不足;原创 2022-09-07 20:37:16 · 205 阅读 · 0 评论 -
this 和 super 表示的是那个类?
super表示当前类的父类对象;this表示当前类的对象;原创 2022-09-07 20:32:17 · 185 阅读 · 0 评论 -
Java程序时如何执行的
4、类装载完毕之后,会对字节码校验,字节码校验通过后jvm解释器会将字节码翻译成机器码交由操作系统去执行。1、将Java源码编译成字节码文件(.class文件)3、使用Java虚拟机使用类加载器装载class文件。2、把字节码文件放到Java虚拟机。原创 2022-09-04 22:31:07 · 170 阅读 · 0 评论 -
浅谈线程池
通过反复利用已经创建的线程降低线程的创建和销毁造成的消耗。3、提高线程的可管理性;使用线程池可以对线程进行统一的管理、监控和调优。当任务到达时,可以不用等到线程创建就可以立即执行。原创 2022-09-04 22:23:48 · 94 阅读 · 0 评论 -
什么是线程安全
什么时候出现线程安全问题呢?不可能是单线程吧,所以一定是发生在多线程中,它就是在多个线程同一时间访问同一代码块与单线程访问情况产生的结果相同,这就叫做线程安全。原创 2022-09-04 22:17:41 · 131 阅读 · 0 评论 -
jvm内存结构
本地方法和jvm栈类似,只不过jvm服务对象是Java方法,而本地方法是为虚拟机使用的native方法服务。每个方法被执行都会同时创建一个栈帧,栈帧用于存储局部变量、操作栈、动态链接、方法出口等信息。被虚拟机加载的类的信息,常量、静态变量还有就是程序编译后的代码和数据。存储对象实例,是虚拟机所管理的内存最大的一块。记录当前线程所执行的字节码的行号指示器。:本地方法栈、jvm栈、程序计数器。原创 2022-09-04 20:25:01 · 249 阅读 · 0 评论 -
什么叫Java虚拟机?为什么Java被称作是”平台无关的编程语言“
Java源文件被编译成能被Java虚拟机执行的字节码文件。Java是一个可以执行Java字节码的虚拟机进程;原创 2022-09-04 20:04:09 · 307 阅读 · 0 评论 -
Java堆和栈的区别
栈内存用来存储局部变量和方法调用,而堆内存用存储Java中的对象;无论是成员变量、局部变量、还是类变量他们指向的对象都存储在堆内存中;StackOverFlowError异常,而堆抛出的是OutOfMemoryError;是运行时单位,代表逻辑,内含基本数据类型和堆中的对象引用,所在区域连续,没有碎片;时存储单元,代表着数据,可以被多个栈共享,所在区域不连续,有碎片;堆空间大小远远大于栈的内存空间。栈是线程私有,而堆是线程共享;原创 2022-09-04 19:04:46 · 3037 阅读 · 0 评论 -
线程、进程、程序
线程: 是操作系统能够运行运算调度的最小单位,它被包含与进程中,是进程运行的实际单位。程序:是指含有指令和数据的文件,被存放在磁盘或者其他的数据存储设备中,通俗的说他就是静态代码;进程:是程序的一次运行过程,是系统运行程序的基本单位,因此进程是活动的。原创 2022-09-04 14:46:31 · 92 阅读 · 0 评论 -
浅谈*和+=
这是因为使用+=时自动的进行了类型的转换;现在的类型变为了int。这时b2为啥报错呢,原因时数据类型是int了。false,浮点数不能完全精准的表示出来;示例一:3*0.1==0.3?为什么这样又不报错了呢。原创 2022-09-04 00:53:44 · 162 阅读 · 0 评论 -
浅谈static的用法
常说的有静态变量和静态方法,其他还有静态代码块、修饰内部内称其为静态内部类。原创 2022-09-04 00:42:17 · 115 阅读 · 0 评论 -
final有哪些用法
4、被final修饰的方法,jvm会尝试将其内联,以提高运行效率。5、被final修饰的常量在编译阶段会将其放入常量池中。2、被final修饰的方法不可被重写。3、被final修饰的变量不可被改变。1、被final修饰的类不可被继承。原创 2022-09-04 00:39:23 · 165 阅读 · 0 评论 -
Java创建对象的几种方式:
首先在dog类中实现Cloneable接口;再重写clone方法。1、通过关键字---new去创建新对象;首先要实现Serializable接口。3、通过clone机制。原创 2022-09-03 23:57:02 · 64 阅读 · 0 评论 -
泛型的本质
泛型原创 2022-09-03 23:05:15 · 224 阅读 · 0 评论 -
Collection和Collections
Collection和Collections原创 2022-09-03 01:34:22 · 94 阅读 · 0 评论 -
String 、StringBuffer 、StringBuilder的区别:
String 、StringBuffer 、StringBuilder的区别:原创 2022-09-03 01:19:34 · 77 阅读 · 0 评论 -
equals与==的区别:
equals与==的区别:原创 2022-09-03 01:07:37 · 63 阅读 · 0 评论 -
重写和重载
重写和重载原创 2022-09-03 00:56:50 · 49 阅读 · 0 评论 -
自动装箱和拆箱
自动装箱和拆箱原创 2022-09-03 00:45:57 · 73 阅读 · 0 评论 -
标识符的命名规则:
方法名和变量名:(小驼峰法)第一个单词的首字母小写,其他单词首字母大写;类名要求:(大驼峰命名法)每个单词的首字母大写;类别:类名、方法名、变量名;原创 2022-09-03 00:30:06 · 92 阅读 · 0 评论