百木园-与人分享,
就是让自己快乐。

java基础4.18

1.java的\"一次编写,处处运行\"如何实现?:
答:java之所有能实现一次编译,到处运行,是因为java在每个系统平台上都有java虚拟机(jvm),java编译的中间文件class是由java虚拟机在运行时动态转换对应平台的机器代码

2.描述jvm的运行原理:
答: Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。

3.为什么Java没有全局变量:
Global variables(全局变量) 是指可以全局访问的变量, Java不支持全局变量,原因如下:

  1. 全局变量破坏了引用的透明性
  2. 全局变量制造了命名空间冲突。
    可以使用properties类将想要全局有效的变量值写在properties文件中,那么在何处用时都从此properties文件中读取这个变量的值就可以了,此值在任何时候都可以修改的

说明:我们平时在类中声明的只是相对类而言是全局变量,不是真正意义的全局变量

4.说明一下public static void main(String args[])这段声明里每个关键字的作用。:
Public 是一个访问权限(访问修饰符)公共

static 修饰的成员称为类成员或者静态成员

void 当方法定义时用void修饰时,表示没有返回值

String 类来创建和操作字符串

5.java是否存在内存泄漏?:
java中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是java中的内存泄露,一定要让程序将各种分支情况都完整执行到程序结束,然后看某个对象是否被使用过,如果没有,则才能判定这个对象属于内存泄露。

6.==与equals的区别:
\"= =\"除了比较基本数据之外都是比较的内存地址
\"equals\"除了比较没有重写equals方法的类之外都是比较的内容

7.java中有几种类型的流:
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入输出两种所以一共四个):InputStream,OutputStream,Reader,Writer

8.如何使用java代码列出一个目录下的所有文件:
File file=new File(\"H:\\\\\"); for(File temp:file.listFiles()){ if(temp.isFile()){ System.out.println(temp.toString()); } }

9.&和&&的区别:
1、&与&&都可以用作逻辑与的运算符,当两边的结果都为true时,运算结果才为true,否则只要有一方运算结果是false,运算结果就为false。
2、&&在开发过程中用到的概率比&大,因为&&具有短路的功能,只要第一个表达式是false,就不会再进行判断。例如:if(str!=null && !str.equals(\"\")){}
当strnull时,后面的表达式就不会继续执行,但是
if(str!=null & !str.equals(\"\")){}当str
null时,程序会报空指针异常,因为&不具有短路的功能。
3、&同时也是位运算符,就是我们通常所说的按位与运算,当&的左右两边都是Boolean型表达式时或Boolean值时,就执行按位与运算

10.构造器(constructor)是否可被重写(override),其规范是什么?:
构造器(构造方法)Constructor不能被继承,因此不能重写Override,但可以被重载Overload(不同参数即可)。
每一个类必须有自己的构造函数,在创建对象自动调用,如果添加有参构造函数后,默认无参构造函数则被覆盖。子类不会覆盖父类的构造函数,但是在创建子类对象的时候,会自动调用父类构造函数


来源:https://www.cnblogs.com/eafkng/p/16167786.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » java基础4.18

相关推荐

  • 暂无文章