JAVA 面试题-Java基础1

1.你认为JAVA与其他语言性比,有什么优点和缺点?

首先,java与C/C++相比,Java是一种完全面向对象的语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C.因为Java的运行是在运行时库的支持下进行的,所以运行效率比可以更接近底层的C/C++来说效率会有所影响,不过java的类库采用很好的设计理念,已经成为业界的一种标准开发语言。他的跨平台的特性受到开发者的青睐,只需要开发一次就能在所有安装了Java运行时库的环境上运行。
其次,Java与C#相比。C#是微软开发的一种编程语言,语法类似Java,几乎就是Java的翻版,运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还有很有限。Java几乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有mono支持。实际上mono也是把C#应用转化为Java应用而已,所以本质上,C#仍然只是被微软自己的操作系统支持。应用平台受到限制,是它最大的缺点。

2.JVM能有几个实例

每个Java程序对应于一个JVM实例,当一个Java程序运行时就创建一个JVM实例,因此JVM实例的个数取决于同时执行的程序个数。

3.Java是如何让实现跨平台的?

Java是利用JVM(Java虚拟机)实现跨平台的。
Java源代码(.java)经过Java编译器编译成Java字节码(.class),执行Java字节码,Java字节码经过JVM解释为具体平台的具体指令,并执行,不同的平台有不同的JVM,主流平台都提供了JVM,所以Java字节码可以在主流平台上能够解释执行,在这个意义上Java是跨平台的,也就是说:Java的字节码是跨平台的。

4.Java中会存在内存泄露吗?

内存泄露是指系统中存在无法回收的内存。有时候会造成内存不足或系统崩溃,Java存在内存泄露。
Java中得内存泄露当然是指:存在无用但是垃圾回收器无法回收得对象。而且即使有内存泄露问题存在,也不一定会表现出来。自己实现堆栈得数据结构时有可能会出现内存泄漏。

5.有没有使用过线程并发库

在Java5之后,就有了线程池得功能了,在介绍线程池之前,先来简单得看一下线程池得概念。假设我开了家咨询公司,那么每天会有很多人来咨询问题,如果我一个个接待得话,必然有很多人要排队,这样效率很差,我想解决问题,现在我雇几个客服,来了一个咨询的,我就分配一个客服去接待他,再来一个,我再分配一个客服去接待…如果第一个客服接待完了,我就让他接待下一个咨询者,这样我雇的这些客服可以循环利用。这些客服就好比不同的线程,那么这些线程的容器就叫做线程池。

6.静态变量和实例变量的区别

静态变量也叫类变量,这种变量前面加了static修饰符。可以直接用类名调用,也可以用对象调用,而且所有对象的同一个变量都是共享同一块内存空间。
实例变量也叫对象变量,这种变量没有加static修饰符。只通过对象调用,而且所有的对象的同一个实例变量是共享不同的内存空间的。
区别在于:
静态变量是所有对象共有的,某一个对象将他的值改变了,其他对象再去获取它的值,得到的是改变后的值。
实例变量则是每一个对象私有的,某一个对象将它的值改变了,不影响其他对象取值的结果,其他对象仍会得到实例变量一开始就被赋予的值。

7.同步和异步有何异同,在什么情况下分贝使用他们?

如果数据将在线程间共享。列如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用一个需要花费很长时间来执行的方法,并不希望让程序等待方法的的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

8.简述 TCP/UDP协议的区别

比较项TCPUDP
是否可连接面向连接面向非连接
传输可靠性可靠的不可靠的
应用场合传输大量的数据少量数据
速度

9.请描述一下JVM加载class文件的原理机制?

JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。

10.什么是进程?
进程是操作系统结构的基础,是一个计算机中正在运行的程序实例。可以分配给处理器并由处理器执行的一个实体,由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值