1.java的基本数据类型及所占的字节

boolen  8位  1个字节

byte 8位 1个字节

char 16位 2个字节

short 16位 2个字节

int 32位 4个字

float 32位 4个字节

double 64位 8个字节

long 64位  8个字节

2.java中==和.equals的区别

==是比较内存地址也就是对象的值

equals是比较的对象的内容

3.谈谈final, finally, finalize的区别。

①final;当类被定义为final时,该类不能被继承,因此类不能abstract 和final同时使用,当方法被定义为final时方法不能被重写 当属性被定义为final时属性的值不能被改变

②finally;在try..catch中使用,不管是否遇到异常都会进入到finally块中

③finalize;Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

4.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

匿名内部类是没有名字的类,不能继承别的类,但是可以作为接口被另一个内部类实现

5.&和&&的区别

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

6.java集合的属性

List Set 属于conction

6.1List(可重复值)   ->6.1.1ArrayList  [1.数组的方式存放数据,2.查询快增删慢、3.线程不安全]

->6.1.2LinkList    [1.链表的方式存放数据,2.增删快,查询慢,3线程不安全]

6.2Set(不可重复)   ->6.2.1 HashSet [1.线程不安全,2.存储是无序的,3.性能优于treeSet]

->6.2.2 treeSet  [1.有升序排序功能]

6.3Map(key value的方式)  -> 6.3.1 HashMap  [1.线程不安全,2.无序的,3.value允许为null]

->6.3.2  HashTable [线程安全 ,2.无序,3.value不允许为null]

->6.3.3  treeMap [线程不安全]

7.线程的生命周期

①线程的创建 也就是new一个线程对象的时候,创建一个空的线程,系统不为它分配资源

②可运行状态 也就是调用了start()方法,系统为线程分配资源,这时的状态并不是运行状态,只有系统为这个线程分配了CPU资源才真正运行

③不可运行状态  当发生下列事件【调用了sleep()方法】【调用了wait()方法】【线程的输入/输出阻塞】

处于sleep状态的线程在指定的睡眠时间后返回可运行状态

处于wait状态的线程需要等待对象调用notify()或者notifyAll()方法

如果输入输出阻塞需要等待输入输出完成后

④ 消亡状态   线程在run方法执行完毕后就进入消亡状态

线程创建后,可通过调用setPriority()方法改变优先级。

8.Overload和Override的区别

Overload是在同一个类中方法名称相同,通过改变参数的个数或者类型来重载

Override是在子类继承父类,重写父类中的方法

9.error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

10.int 和 Integer 有什么区别?

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类booleanBoolean    charCharacter  byteByte  shortShort  intInteger  longLong  floatFloat  doubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

11.String 和StringBuffer的区别?

String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

12.HashMap和Hashtable的区别。

HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

13.同步和异步有何异同,在什么情况下分别使用他们?举例说明

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

14.abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

15.heap和stack有什么区别。

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素。

16.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

witch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

17.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

18.Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

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

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

20.java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节流,字符流。字节流继承于InputStream \ OutputStream,字符流继承于InputStreamReader \ OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便

21.是否可以从一个static方法内部发出对非static方法的调用?

不可以,如果其中包含对象的method();不能保证对象初始化。

java部分_java基础部分相关推荐

  1. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  2. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  3. cmd运行java文件_Java基础 前传

    微信搜一搜秃然编程 一.关于MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统.在美国微软公司推出Windows1.0.Windows3.0.1995年8月24日推出的操 ...

  4. java基本命令_java基础篇 快捷键 常见Dos命令等等

    (一) 计算机基础介绍 (二) jdk 安装 (三) 环境变量介绍及配置 (四) HelloWorld 实现 一 . 计算机概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算 ...

  5. java嵌套循环_java基础之嵌套循环

    一. for循环双层嵌套 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环.(外循环控制行数,内循环控制每一行的个数) f ...

  6. java三板斧_JAVA基础学习 三板斧

    JAVA基础学习 -1 三板斧 1. 引子 最近因为工作需要,开始学习JAVA,我之前常用的编程语言是C,C#,C++,基本没有用JAVA,JAVA需要从基础开始学习了. JAVA是从C++优化而来: ...

  7. java包装_Java基础之神奇的包装类(一)

    1. 导读 JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题: .1 什么是包装类? 有了基本类型, 为什么还需要有包装 ...

  8. java练习_Java基础笔试练习(一)

    Java基础笔试练习(一) 1. 若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于() ? A.本地方法 B.最终方法 C.静态方法 D.抽 ...

  9. 判断三角形java代码_java基础编程题之异常处理

    以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...

  10. java数据类型_JAVA基础篇(数据类型)

    首先请大家想想这几个问题: 1.java数据类型是什么? 2.Java数据类型有什么用? 上一节(JAVA基础篇(函数))有个add函数,里面有两个int类型,int类型就是整数的意思,这一节我们来学 ...

最新文章

  1. Python爬虫-代理池-爬取代理入库并测试代理可用性
  2. java oca_OCA第4部分中的Java难题
  3. centos7 mysql tar_CentOS7中mysql-5.7.21-el7-x86_64.tar.gz版MySQL的安装与配置
  4. 终于有人把数据湖讲明白了
  5. signal.h-----信号函数
  6. VMware vSphere第三方免费工具介绍之一:RVTools
  7. Spring Boot 2.1.4 发布,提醒全体用户升级 2.1
  8. LuaForUnity9:uLua的一个简单实例
  9. IIS 7 启用 gzip 静态压缩 压缩js和css文件
  10. Java输出字符串格式问题 .UnknownFormatConversionException
  11. Mac m1 Kettle安装
  12. 没了Ghost,系统也能“雨过天晴”了
  13. python和c 情侣网名_qq情侣网名个性网
  14. 2021-11-02
  15. 使用Grid++report开发报表功能
  16. 如何优雅的用Axure绘制高保真原型心得分享
  17. 嘉立创电路板制作过程全流程详解(二):沉铜、线路
  18. 烽火AN5516 OLT通过OMCI下发 PPPoE WAN连接问题分析-----OLT存在私有Me协议
  19. Spark特征处理之RFormula源码解析
  20. halcon实现车牌识别

热门文章

  1. WLS_Oracle Weblogic服务器生命周期(案例)
  2. 实训汇编语言设计——16位数拆分为4组
  3. matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf
  4. php websocket ipv6,原生socket支持ipv6
  5. 把数据保存到cook_数据存储之HTTP Cookie
  6. 将提取出的yuv三个分量序列合并成一个完整的彩色yuv序列(matlab实现)
  7. matlab feedforward,Matlab BP神经网络工具箱之feedforwardnet使用小结
  8. 网站服务器系统组成,linux系统由哪几部分组成_网站服务器运行维护,linux
  9. 访问服务器显示无法访问目标主机,发送4接收4无法访问目标主机
  10. mac php memcache扩展,Mac下PHP安装Memcache扩展