Java SE
JavaSE相关知识
mumucgq
菜鸡木木
展开
-
进程与线程的区别是什么? 进程间以及线程间的几种通信方式说一下?
进程与线程的区别是什么? 线程与进程相似,但线程是一个比进程更小的执行单位,一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享一块内存空间和一组系统资源。所以系统在产生一个线程,或是在各个线程之间切换工作时,负担要比进程小得多,也正是因为如此,线程也被称为轻量级进程。另外,也正是因为共享资源,所以线程中执行时一般都要进行同步和互斥。总的来说,进程和线程的主要区别在于它们是不同的操作系统资源管理方法。进程是操原创 2020-05-09 19:57:54 · 548 阅读 · 0 评论 -
java基础面试题
1.1Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意思?重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重写Override表示子类中的方法可以与父类的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖...转载 2020-05-01 00:49:13 · 207 阅读 · 0 评论 -
关于java中的编码相关内容
所有的I/O基本上可以分为两大阵营:面向字符的输入/输出流;面向字节的输入/输出流。面向字符或者说面向字节中的所谓“面向”,是指这些类在处理输入/输出的时候,在哪个意义上保持一致。如果面向字节,那么这类工作要保证系统中的文件二进制内容和读入JVM内部的二进制内容一致,不能变换任何0和1的顺序。这种输入/输出方式很适合读入视频文件或者音频文件,或者任何不需要做变换的文件内容。而面向字符的I/O是...原创 2020-05-01 00:45:00 · 140 阅读 · 0 评论 -
关于运算符优先级
1级 — . ()2级 — ++ –3级 — new4级 — * / %5级 — + -6级 — >> << >> >7级 — > < >= <=8级 — ...原创 2020-05-01 00:40:38 · 161 阅读 · 0 评论 -
java 关于接口中的修饰符
需要注意以下几点:1.接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public) 类型的,确保外部使用者能访问它们;2.接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;3.接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static) 变量;4.接口的中的变量...原创 2020-04-30 19:02:35 · 433 阅读 · 0 评论 -
java 抽象类需要注意的几点
一个抽象类要注意以下几点: (1)抽象类只能作为其他类的基类,它不能直接被实例化,而且对抽象类不能使用new操作符。抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类的实例的引用。 (2)抽象类允许包含抽象成员,但这不是必须的(可以允许一个...原创 2020-04-30 18:40:39 · 287 阅读 · 0 评论 -
String 类为什么是final的
final 可以修饰类、方法和变量,并且被final修饰的类 不能被继承,即它不能拥有自己的子类,被fianl修饰的方法不能被重写,final修饰的遍历,无论是类属性、对象属性、形参还是局部变量,都需要进行初始化操作。String 的源码:1、为了实现字符串常量池 因为只有当字符串...原创 2020-04-30 18:19:35 · 133 阅读 · 1 评论 -
变量的内存分配情况
在Java中有两个非常特殊的关键字:this和super,它们在使用前都是不需要声明的。this关键字使用在一个成员函数的内部,指向当前对象,当前对象指的是调用当前正在执行方法的那个对象。super关键字是直接指向超类的构造函数,用来引用超类中的变量和方法。下面介绍一下this的使用方法。先看下面的一段代码。class Pe...原创 2020-04-30 17:45:36 · 165 阅读 · 0 评论 -
Super关键字
在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,就需要用到super。请看下面的类。class Country{ String name; ...原创 2020-04-30 17:27:58 · 146 阅读 · 0 评论 -
虚拟机 、java语言关于重载
类中可以有多个匹配方法,尽管java语言禁止类声明带有相同签名但不同返回类型的多个方法,但java虚拟机并不禁止。这增加了虚拟机的灵活性,可以用来实现各种语言特性。例如,可以使用桥接方法(brige method)实现协变返回;桥接方法以及将被重写的方法具有相同的签名,不同的返回类型。总结:虚拟机与Java语法对于重载的认定有细微差别,虚拟机不禁止具有相同签名和参数列表但是不同返回值的方法存在...原创 2020-04-30 15:41:47 · 90 阅读 · 0 评论 -
面向对象的五大特征
Alan Kay曾经总结了面向对象语言的五大特征:1)万物皆为对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取待求解决问题的任何概念化构件(狗、建筑物,服务等),将其表示为程序中的对象。2)程序时对象的集合,它们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须对该对象发送一条信息。更具体地说,可以把消息想象为对某个特定对象的方法...原创 2019-10-10 14:06:52 · 1104 阅读 · 0 评论 -
关于类加载器的双亲委托机制
什么是双亲委派机制:我们应用程序都是由引导类加载器、扩展类加载器、应用类加载器三种类加载器互相配合进行加载的,还可以加入自己定义的类加载器。称为 类加载器的双亲委派模型 ,这里类加载器之间的父子关系一般不会以继承的关系来实现,而是都使用 组合关系 来复用父加载器的。双亲委托模型的重要用途是为了解决类载入过程中的安全性问题。BootstrapClassLoader(引导类加载器)并没有遵守Cl...原创 2019-09-01 16:49:36 · 162 阅读 · 0 评论 -
JVM堆内存设置原理
堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻...转载 2019-09-01 16:07:07 · 223 阅读 · 0 评论 -
JVM垃圾回收总结
垃圾回收包含的内容不少,但顺着下面的顺序捋清知识也并不难。首先要搞清垃圾回收的范围(栈需要GC去回收吗?),然后就是回收的前提条件如何判断一个对象已经可以被回收(这里只重点学习根搜索算法就行了),之后便是建立在根搜索基础上的三种回收策略,最后便是JVM中对这三种策略的具体实现。1.范围:要回收哪些区域Java 方法栈,本地方法区以及PC计数器随方法或线程的结束而自然被回收,所以这些区...转载 2019-09-01 15:31:24 · 123 阅读 · 0 评论 -
关于sleep() 方法和 wait()方法的区别
Java中sleep和wait的区别1. 这两个方法来自 不同的类 分别是,sleep()来自Thread类,和wait()来自Object类。sleep()是Thread的静态类方法, 谁调用的谁去睡觉,即使在a线程里调用b的sleep()方法,实际上还是a去睡觉, 要让b线程睡觉要在b的代码中调用sleep()。sleep()方法会一直持有锁,不会释放锁。sleep通常被用于暂停执行。s...原创 2019-08-22 20:40:33 · 271 阅读 · 0 评论