栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

java笔记

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java笔记

Java面试笔记

java概述

对java平台的理解对Java是解释执行的理解JVM,JRE,JDK 的区别什么是跨平台,原理是什么什么是字节码,采用字节码最大的好处是什么 基础语法

数据类型访问修饰符& 和 &&,| 和 || 的区别final finally finalize的区别this super

java概述 对java平台的理解

    对java平台的理解
    分为三个方面,java的面向对象与其类库、java的跨平台、java的虚拟机和垃圾回收机制。
    (1)java的面向对象和类库:java是一门面向对象的语言,允许程序员以优雅的思维方式进行复杂的编程。java的类库很全,如其核心类库,集合容器、线程相关类、JUC并发包、异常和安全,IO/NIO(NIO是NEW IO, 和IO的作用相同但是其效率更高) 等类库。
    (2)java的跨平台:java是“一次编写,到处运行”,他以虚拟机为中间层,非常容易的获取到了跨平台的能力。而C/C++ 是面相操作系统来编程的,开发者需要关心不同操作系统之间的差异,JAVA却通过虚拟机来取消了这种差异。
    (3)java的虚拟机和垃圾回收机制:Java通过垃圾收集器回收分配内存,大部分情况下程序员不需要操心内存的分配与回收。针对虚拟机的效率也有优化的技术,如:JIT技术,会将热点代码编译成机器码。AOT技术,在运行前,通过工具将字节码转为机器码。

    对Java是解释执行的理解

    对Java是解释执行的理解
    首先,先了解编译执行和解释执行的区别,编译执行就相当于将代码或指令等按照一定的规范来书写,再利用编译器一次性翻译成CPU能识别的。而解释执行就是发送一条指令便翻译执行一条指令,这样效率较低。
    这种说法是不太准确的,在 开发时,首先是将源码(即我们写的Java 代码)通过javac 编译为字节码,在运行的时候,通过jvm中的解释器,将字节码转化为机器码。但是在一些常见的JVM中都提供了JIT编译器,其会将热点代码编译为机器码,这种情况下这部分热点代码就属于编译执行而不是解释执行。

    JVM,JRE,JDK 的区别

    JVM,JRE,JDK 的区别
    JVM:Java Virtual Machine ,java虚拟机,Java程序需要运行在自己的虚拟机上,不同平台都有自己的虚拟机,也是因此Java可以实现跨平台。
    JRE:Java Runtime Environment, java运行环境,其包含java虚拟机和java运行所包需要的核心类库。核心类库主要包括java.lang包下的,包含了运行java必不可少的系统类,如:包装类型,基本数学函数,字符串处理,线程,异常处理类等,一个开发好的java程序,装上jre即可运行。
    JDK:java Development Kit ,java开发工具,是给java开发人员使用,包含了java开发工具和jre,安装了jdk就不需要安装jre了。
    java开发工具: java.exe 运行工具 , javac.exe 编译工具,javaw.exe GUI 工具
    可以理解为
    jvm + 核心类库 = jre
    jre + 开发工具 = jdk

    什么是跨平台,原理是什么

    什么是跨平台,原理是什么
    跨平台就是一次编译到处运行.原理就是java通过jvm虚拟机来运行在各个平台,只要装了相应的java虚拟机就可以运行java程序

    什么是字节码,采用字节码最大的好处是什么

    什么是字节码,采用字节码最大的好处是什么
    字节码是java的源代码通过java虚拟机的编译器(javac)编译而成,放在.class文件里,不面向任何的处理器和操作系统,只面向虚拟机
    好处: 通过字节码的方式,一定程度的解决了解释型语言效率低的问题,且保留了解释型语言可移植的特点,所以其效率高.由于字节码文件只面向虚拟机,所以放到别的平台上不需要再次编译即可运行
    执行顺序: java源代码经过编译器(javac)编译成字节码----jvm执行字节码(即虚拟命令)-----jvm中的解释器将其转化为机器码----机器执行二进制机器码—运行

    基础语法 数据类型
      数据类型
      (1)基本数据类型: byte,short,int,long,float,double,boolean,char,1,2,4,8,4,8,1,2
      (2)引用数据类型:class,interface,数组…
    访问修饰符
      访问修饰符
      java中可通过访问修饰符来保护类,对象,变量,方法.
      (1)private , 只能在同一类中可见。可作用在变量、方法中
      (2)default, 不写修饰符默认就是default,在同一包内可见。可作用在类、接口、变量、方法中。
      (3)protected, 对同一包内的类和所有子类可见,可作用在变量、方法中。
      (4)public: 对所有类可见,可作用对象:类、接口、方法、变量
    & 和 &&,| 和 || 的区别
      &运算符有两种用法:按位与和逻辑与
      && 是短路运算符,逻辑与&和短路与&&的差别非常大,虽然两者都要求等号两边都为true结果才为true但是 &&当等号左边的值为false的时候便不会计算右边的值,因此被称为短路与
      | 和 || 也是一样。
    final finally finalize的区别
      final finally finalize的区别
      (1)final是一个修饰符关键字,其可以修饰类、方法、变量,final修饰的类就不能被继承,final修饰的方法不能被重写,final修饰的变量不能被重新赋值
      (2)finally 是一个异常处理的关键字,一般用在try-catch-finally中,在处理异常的时候通常会将一定执行的代码放到finally中,表示不管是否出现异常都会执行改代码,一般用来放关闭资源的代码。
      (3)finalize 是属于Object类的一个方法,该方法一般由垃圾回收器来调用,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收,现在已经不推荐使用.jdk9中已经弃用
    this super
      this super
      (1) this是指向对象本身的一个指针
      其用法分为三类
      普通直接引用,相当于指向了当前对象本身
      当形参和成员名重名,用this来区分
      引用本类的构造函数
      (2)super 可以理解为是指向自己父类对象的一个指针,且指的是离自己最近的一个父类
      其用法分为三类
      普通直接引用,相当于指向当前对象的父类并引用,可以使用super.xx来引用父类的成员
      当子类中的成员变量或方法与父类的重名时,可以使用super来区分
      引用父类的构造函数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号