Java
duanjinlong、
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA抽象类与接口
抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。 2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。 4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。 5. 抽象类的子原创 2020-10-19 21:56:15 · 229 阅读 · 0 评论 -
基本数据类型和引用数据类型在内存中的分配
基本数据类型 引用数据类型 在栈中进行分配 在堆中进行分配,堆的读写速度远不及栈 变量名指向具体的数值 变量名指向存数据对象的内存地址,即变量名指向hash值 变量在声明之后java就会立刻分配给他内存空间 它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址 基本类型之间的赋值是创建新的拷贝 对象之间的赋值只是传递引用 “==”和“!=”是在比较值 “==”和“!=”是在比较两个引用是否相同,需要自转载 2020-09-11 18:06:02 · 1937 阅读 · 0 评论 -
进程切换与线程切换的区别?
注意这个题目问的是进程切换与线程切换的区别,不是进程与线程的区别。当然这里的线程指的是同一个进程中的线程。这个问题能很好的考察面试者对进程和线程的理解深度,有比较高的区分度。要想正确回答这个问题,面试者需要理解虚拟内存。虚拟内存解放生产力对于程序员来说,我们在编程时实际上是不怎么操心内存问题的,对于使用Java、Python、JavaScript等类型语言的程序员来说更是如此,自动内存回收机制的引入使得使用这类语言的程序员几乎完全不用关心内存问题;即使对于编译型语言C/C++来说,程序.原创 2020-09-04 16:26:46 · 539 阅读 · 0 评论 -
多线程环境下为什么会有线程不安全
我们知道进程是操作系统资源分配(包括cpu、内存、磁盘IO等)的最小单位,线程是CPU调度的最小单位一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。内存资源分配给进程,同一个进程的所有线程共享该进程所有资源。而CPU分配给线程,即真正在处理器运行的是线程。 单核cpu:实现多进程依靠于操作系统的进程调度算法,比如时间片轮转算法,比如有3个正在运行的程序(即三个进程),操作系统会让单核cpu轮流来运行这些进程,然后一个进程只运行2ms,这样看起来就像多个进程同时在原创 2020-09-04 16:18:26 · 361 阅读 · 0 评论 -
MVC、MVP、MVVM
本文将详细阐述以下MVC、MVP、MVVM三种理念的定义及区别还有他们的适用场合。MVCMVC模式最初生根于服务器端的Web开发,后来渐渐能够胜任客户端Web开发,能够满足其复杂性和丰富性。MVC是Model-View-Controller的缩写,它将应用程序划分为三个部分: Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法) View: 视图(渲染页面) Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页原创 2020-09-02 12:08:32 · 337 阅读 · 0 评论 -
Java内存泄漏
问题的提出Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。随着越来越多的服务器程序采用Java技术,例如JSP,Servlet, EJB等,服务器程序往往长期运行。另外,在很多嵌入式系统中,内存的总量非常有限。内存泄露问转载 2020-08-26 17:06:09 · 322 阅读 · 0 评论 -
JVM 垃圾回收 GC
一、JVM体系结构: 类装载器ClassLoader:用来装载.class文件 执行引擎:执行字节码,或者执行本地方法 运行时数据区:方法区、堆、Java栈、程序计数器、本地方法栈JVM把描述类数据的字节码.Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。二、JVM原理:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实...转载 2020-08-24 23:04:15 · 222 阅读 · 0 评论 -
线程与线程池
线程进程中负责程序执行的执行单元。一个进程中至少有一个线程。线程状态(1) 新建状态 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。(2) 就绪状态 当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。(3) 运行状态 如果就绪状态的线程获取 CPU 资源,就可以...原创 2020-08-19 23:12:49 · 249 阅读 · 0 评论 -
java各种集合类区别 List Map
集合类型主要有3种:set(集)、list(列表)和map(映射)。集合接口分为:Collection和Map,list、set实现了Collection接口List总结:可以重复,通过索引取出加入数据,顺序与插入顺序一致,可以含有null元素ArrayList:底层数据结构是数组结构array,查询速度快,增删改慢,因为是一种类似数组的形式进行存储,因此它的随机访问速度极快;Vector:底层是数组结构array,与ArrayList相同,查询速度快,增删改慢;Linked转载 2020-08-17 17:12:47 · 364 阅读 · 0 评论 -
Java中String,StringBuffer,StringBuilder基础知识
原文链接三者区别String :不可变类,任何对String的改变都会引发新的String对象的生成,适用于少量的字符串操作的情况 StringBuffer :线程安全,任何对它所指代的字符串的改变都不会产生新的对象,适用多线程下在字符缓冲区进行大量操作的情况 StringBuilder :线程不安全,因此不适合多线程中使用,适用于单线程下在字符缓冲区进行大量操作的情况 速度运行方面:StringBuilder > StringBuffer > StringString..原创 2020-07-09 10:40:02 · 199 阅读 · 0 评论
分享