首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java GC基础知识

最近碰到一些应用问题,涉及到了Java垃圾回收机制,Garbage Collection,简称GC,这其中学问,还是不少,有很多东西需要学习。...首先,关于GC定义,简单讲,他就是Java垃圾回收机制。目前主流JVM(HotSpot)采用是分代收集算法。...与C++不同是,Java采用是类似于树形结构可达性分析法来判断对象是否还存在引用。即从gcroot开始,把所有可以搜索得到对象标记为存活对象。...作为程序员要关注区域主要有5块,分别是方法区(Method Area),Java栈(Java stack),本地方法栈(Native Method Stack),堆(Heap),程序计数器(Program...旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足现象,当执行Full GC后空间仍然不足,则抛出错误:java.lang.OutOfMemoryError: Java heap space

51210

JAVA基础知识

什么是 Java 虚拟机?为什么 Java 被称作是 “ 平台无关编程语言 ” ? Java 虚拟机是一个可以执行 Java 字节码虚拟机进程。 ...Java 源文件被编译成能被 Java 虚拟机执行字节码文件。  Java 被设计成允许应用程序可以运行在任意平台,而不需要程序员为每一个平台单独重写或者是重新编译。 ...JDK:   java 开发工具包 , 包含了 JRE 、编译器和其它工具(如: javaDOc 、 java 调试器 ) JRE:  java 运行环境 , 包含 java 虚拟机和 java 程序所需核心类库...可能比较让人迷惑就是 java 中对象传递时,对形参改变依然会意向到该对象内容。 下面这个例子来说明 java 中是值传递 .    ...系统类加载器( system class loader ):它根据 Java 应用类路径( CLASSPATH )来加载 Java类。一般来说, Java 应用类都是由它来完成加载

94020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java基础知识

    {/collapse-item} {collapse-item label="instanceof "} instanceof 严格来说是Java一个双目运算符,用来测试一个对象是否为一个类实例...enum定义类型就是class,只不过它有以下几个特点: 定义enum类型总是继承自java.lang.Enum,且无法被继承; 只能定义出enum实例,而无法通过new操作符创建enum实例;...还有一种类,它被定义在另一个类内部,所以称为内部类(Nested Class)。Java内部类分为好几种,通常情况用得不多,但也需要了解它们是如何使用。...,可以定义多个参数, 变量参数2代表循环次数,也可以为多个参数, 参数3 代表每次循环后所增减值 注释:For里面也可以进行break语句 Java作为一种面向对象语言。...:符号表示,具体含义其实就和if-else结构含义差不多,这种运算符会将某个条件作两种处理,如果满足条件的话就执行第一个结果,如果不满足的话就执行另外一个结果 //java 三元运算符

    52930

    java基础知识

    ,序列化笔记参见[Java-note-序列化.md][5] 15.Java方法区 与堆一样,是线程共享区域。...通过方法重写和方法重载实现多态 方法重写是指子类重写了父类同名方法 方法重载是指在同一个类中,方法名字相同,但是参数列表不同 30.Java文件 .java文件可以包含多个类,唯一限制就是:一个文件中只能有一个...37.Java语言鲁棒性 Java在编译和运行程序时,都要对可能出现问题进行检查,以消除错误产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生错误。...另外,Java在编译时还可捕获类型声明中许多常见错误,防止动态运行时不匹配问题出现。...38.Java语言特性 Java致力于检查程序在编译和运行时错误 Java虚拟机实现了跨平台接口 类型检查帮助检查出许多开发早期出现错误 Java自己操纵内存减少了内存出错可能性 Java还实现了真数组

    1K50

    JAVA基础知识JAVA引用类型

    1.概述           在Java中,除了基本数据类型之外,其它类型都是引用数据类型,比如String类型和自己定义class类、数组、接口都是引用类型。...2.什么是值类型和引用类型[定义] 值类型也就是8种基本数据类型; 引用类型表示你操作数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量值,那么调用这个方法是传入变量值也将改变....值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量值时,最初生命变量值不会变.通俗说法: 值类型就是现金,要用直接用;引用类型是存折,要用还得先去银行取现。...3.值传递和引用传递             [值传递] 基本数据类型赋值都属于值传递,值传递传递是实实在在变量值,是传递原参数拷贝,值传递后,实参传递给形参值,形参发生改变而不影响实参。    ...引用传递传递是对象引用地址,也就是它本身(自己最通俗理解)。 引用传递:传是地址,就是将实参地址传递给形参,形参改变了,实参当然被改变了,因为他们指向相同地址。

    80220

    什么才是java基础知识

    作者:晓风 出处:https://xwjie.github.io 近日里,很多人邀请我回答各种j2ee开发初级问题,我无一都强调java初学者要先扎实自己基础知识,那什么才是java基础知识?...又怎么样才算掌握了java基础知识呢?这个问题还真值得仔细思考。 我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。...编码前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写代码都是一些功能业务逻辑)。...苦恼*2 过了很长一段这种惶惶不可终日日子,决定自己要改变,改变方向就是阅读自己用到java相关源代码,看看jdk是如何实现。就从基本数据结构看,然后看多线程相关,在学习前台等等。...说了这么多,我想说就是,j2ee基础知识就是你做项目中代码背后东西。提高自己水平方法很简单,就是把大部分时间去了解实现原理,了解思想,让自己知识串起来,形成体系。

    51160

    什么才是Java基础知识

    近日里,很多人邀请我回答各种j2ee开发初级问题,我无一都强调java初学者要先扎实自己基础知识,那什么才是java基础知识?又怎么样才算掌握了java基础知识呢?这个问题还真值得仔细思考。...编码前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写代码都是一些功能业务逻辑)。...但同时自己心里明白,自己其实没有什么水平,自己这3,4年以来学懂东西就那么多,其他人几个月就可以学会,自己竞争力在哪里?这种矛盾心理,困扰了我非常长时间,非常苦恼!...苦恼*2 过了很长一段这种惶惶不可终日日子,决定自己要改变,改变方向就是阅读自己用到java相关源代码,看看jdk是如何实现。就从基本数据结构看,然后看多线程相关,在学习前台等等。...说了这么多,我想说就是,j2ee基础知识就是你做项目中代码背后东西。提高自己水平方法很简单,就是把大部分时间去了解实现原理,了解思想,让自己知识串起来,形成体系。

    24510

    什么才是Java基础知识

    近日里,很多人邀请我回答各种j2ee开发初级问题,我无一都强调java初学者要先扎实自己基础知识,那什么才是java基础知识?又怎么样才算掌握了java基础知识呢?这个问题还真值得仔细思考。...编码前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写代码都是一些功能业务逻辑)。...但同时自己心里明白,自己其实没有什么水平,自己这3,4年以来学懂东西就那么多,其他人几个月就可以学会,自己竞争力在哪里?这种矛盾心理,困扰了我非常长时间,非常苦恼!...苦恼*2 过了很长一段这种惶惶不可终日日子,决定自己要改变,改变方向就是阅读自己用到java相关源代码,看看jdk是如何实现。 就从基本数据结构看,然后看多线程相关,在学习前台等等。...说了这么多,我想说就是,j2ee基础知识就是你做项目中代码背后东西。提高自己水平方法很简单,就是把大部分时间去了解实现原理,了解思想,让自己知识串起来,形成体系。

    55930

    什么才是Java基础知识

    源 / 知乎 文 / 晓风轻 近日里,很多人邀请我回答各种j2ee开发初级问题,我无一都强调java初学者要先扎实自己基础知识,那什么才是java基础知识?...又怎么样才算掌握了java基础知识呢?这个问题还真值得仔细思考。 我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。...编码前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写代码都是一些功能业务逻辑)。...苦恼*2 过了很长一段这种惶惶不可终日日子,决定自己要改变,改变方向就是阅读自己用到java相关源代码,看看jdk是如何实现。 就从基本数据结构看,然后看多线程相关,在学习前台等等。...说了这么多,我想说就是,j2ee基础知识就是你做项目中代码背后东西。提高自己水平方法很简单,就是把大部分时间去了解实现原理,了解思想,让自己知识串起来,形成体系。

    48650

    java基础知识02

    前言: 接着《java基础知识01》,再来聊聊剩下那些知识点。 一、java基础类库: 1、String字符串: 字符串一旦被初始化,就不可以被改变,存放在方法区中常量池中。...服务端网络编程步骤: 监听端口 获得连接 交换数据 关闭连接 3、Java网络编程: 和网络编程相关API位于java.net包下。 (1)....部分相关API如下: InetAddress:java 中ip对象 Socket:套接字,通信端点。...s.close(); ss.close(); } 五、设计模式: Java有23中设计模式,这里只挑几个常用说一说,想深入了解可以研读《Java设计模式》这本书。...总结: 《java基础知识01》和本文简陋总结了一些java基础知识点,由于本人只是个小白,只能在此抛砖引玉,望各位大神多多指点!

    55220

    Java基础知识扫盲

    Arrays.sort底层实现 Arrays.sort是Java中提供对数组进行排序方法,根据参数类型不同,它提供了很多重载方法: public static void sort(Object[]...6、Timer执行任务完全基于JVM内存,一旦应用重启,那么队列中任务就都没有了 Java序列化机制是咋实现 序列化是将对象转换为可传输格式过程。 是一种数据持久化手段。...在Java序列化机制中,如果是String,枚举或者实现了Serializable接口类,均可以通过Java序列化机制,将类序列化为符合编码数据流,然后通过InputStream和OutputStream...Java注解是干嘛 Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你代码执行,但也有一些类型注解实际上可以用于这一目的。...Java 注解是从 Java5 开始添加到 Java Java注解,可以说是一种标识,标识一个类或者一个字段,常常是和反射,AOP结合起来使用。

    4810

    Java集合基础知识

    当然 Java数组是无法自动扩,方法是使用一个新数组代替已有的容量小数组,就像我们用一个小桶装水,如果想装更多水,就得换大水桶。...Collection和Collections区别 java.util.Collection 是一个集合接口。...它提供了对集合对象进行基本操作通用接口方法。 java.util.Collections 是针对集合类一个帮助类,他提供一系列静态方法实现对各种集合搜索、排序、 线程安全等操作。...九:数组在内存中是如何分配 对于 Java 数组初始化,有以下两种方式 静态初始化:初始化时由程序员显式指定每个数组元素初始值,由系统决定数组长度,如: //只是指定初始值,并没有指定数组长度...,而动态初始化方式,程序员虽然没有显示指定初始化值,但是因为 Java 数组是引用类型变量,所以系统也为每个元素分配了初始化值 null ,当然不同类型初始化值也是不一样,假设是基本类型int类型

    5410

    Java基础知识(一)

    一、Java语言特点 简单性 ​ Java看起来设计很像c++,取消了很多程序员很少使用特征。例如:Java不支持go to语句,提供了break和continue语句以及异常处理。...可靠性方面最重要增强之一是Java存储模型。Java不支持指针,它消除重写存储和讹误数据可能性。类似地,Java自动“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配有害错误。...编译Java代码中存储引用在运行时由Java解释程序决定实际存储地址。 Java运行系统使用字节码验证过程来保证装载到网络上代码不违背任何Java语言限制。...例如,Java显式说明每个基本数据类型大小和它运算行为(这些数据类型由Java语法描述)。 Java环境本身对新硬件平台和操作系统是可移植。...即java程序运行时环境,包含了java虚拟机,java基础类库。 JDK: Java Development Kit(java开发工具包)。即java语言编写程序所需开发工具包。

    49430

    Java基础知识(三)

    继承 继承好处 提高了代码复用性 提高了代码维护性 让类与类之间产生了关系,是多态前提 继承弊端 类耦合性增强了 开发原则:高内聚,低耦合 耦合:类与类关系 内聚:就是自己完成某件事情能力...继承特点 Java只支持单继承 Java支持多层继承(继承体系) 如果想用这个体系所有功能用最底层类创建对象 如果想看这个体系共性功能,看最顶层类 继承注意事项 子类只能继承父类所有非私有的成员...调用本类其他构造方法,但是子类其他构造方法中一定会有一个去访问了父类带参构造方法 让父类提供无参构造 因为子类会继承父类中数据,可能还会使用父类数据 所以,子类初始化之前,一定要先完成父类数据初始化...override(重写):发生在java继承中,当子类需要使用和父类方法名相同,但实现过程不同方法时,就会用到重写。...需要注意是重写方法参数列表必须与弗雷被重写方法参数列表完全一直,但返回值类型可以是父类被重写方法返回值类型衍生类或者是相同类. overload(重载) : 重载发生在同一个类中,同一个类中需要用相同方法名但实现过程不同时候用到重载

    38030

    java(一)基础知识

    ;C++面向过程/对象;java跨平台纯面向对象语言;.Net跨语言平台; javaSE:java标准版,提供完整java核心api,以前称为J2SE; javaEE:java企业版,主要正对web...应用程序开发,以前称为J2EE; javaME:小型版,用于移动终端,以前称为J2ME; java Card:支持一些Java小程序,运行在小内存设备上平台; java语言特点: 面向对象;基本概念:...类、对象;三大特性:封装、继承、多态; 健壮性、完善性;吸收了C、C++特点,但去掉了其影响程序健壮性部分(如指针、内存申请与释放等),提供了一个相对安全内存管理和访问机制; 跨平台性 JVM;...通过java语言编写应用程序可以在不同操作系统上运行; java两种核心机制: java虚拟机:是一个虚拟计算机,具有指令集并使用不同存储区域,负责指令执行,管理数据、内存、寄存器; 垃圾回收机制...; jdk和jre: jdk,即java开发工具包其中包含了java开发工具,也包含了jre,安装了jdk就不用再安装jre; jre:java运行环境,包括java虚拟机和java程序所需核心类库等

    32520

    Java基础知识(二)

    static 关键字 特点 随着类加载而加载 优先于对象存在 被类所有对象共享 注意事项 静态方法: 非静态方法:静态变量和成员变量区别 成员变量 : 只能访问静态变量 成员方法 : 只能访问静态成员方法...成员变量 : 可以是静态,也可以是非静态 成员方法: 可以是静态成员方法, 也可以是非静态成员方法 因为静态是随着类加载而加载,this是随着对象创建而存在 静态比对象先存在 在静态方法中是没有...this关键字, 静态方法只能访问静态成员变量和静态成员方法 所属不同: 静态变量属于类,所以也称为类变量 成员变量属于对象,所以也称为实例变量(对象变量) 内存中位置不同: 静态变量存储于方法区静态区...,虽然不是关键字,但是被jvm识别 String[] args 以前用于接收键盘录入 代码块 在Java中,使用{}代码被称为代码块 根据其位置和声明不同,可以分为局部代码块,构造代码块, 静态代码块...,同步代码块 局部代码块 在方法中出现,限定变量生命周期,及早释放,提高内存利用率 构造代码块(初始化块) 在类中方法外出现,多个构造方法中相同代码存放到一起,每次调用构造都执行,并且在构造方法前执行

    28120
    领券