什么是Java?

Java是一门面向对象编程语言

Java语言有哪些特点?

1、面向对象
封装,继承,多态
2、跨平台性
java语言编写的程序,一次编译后,可以在多个系统平台上运行。
原理:不同系统可以安装相应的java虚拟机
3、健壮性
内存自动管理

面向对象有哪些特征?

1、抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。
2、封装:封装把一个对象的属性私有化,外界无法访问,也可以提供一些可以被外界访问属性的方法。
3、继承:继承是使用已存在的类作为基础建立新类,提升复用。
4、多态:一个引用变量指向哪个类的实例对象,调用哪个类中的方法,必须在程序运行期间才能决定。

Java和C++的区别?

1、都是面向对象的语言,都支持封装、继承和多态,但C++支持多继承,Java只支持单继承(可通过接口实现多继承)
2、Java有自动内存管理机制,不需要程序员手动释放无用内存,编程更方便,不容易出问题。
3、Java不提供通过指针来直接访问内存,程序更加安全。
4、Java源码会先经过一次编译,成为字节码,字节码再被解释器解释成机器码;C++源码一次编译形成了机器码。

JVM、JRE和JDK的关系?

JVM:Java Virtual Machine,Java虚拟机,提供Java程序的运行环境。
JRE:Java Runtime Environment,包括JVM和核心类库。
JDK:Java Development Kit,包含了JRE和一些开发工具(编译工具javac.exe、打包工具jar.exe等)。

Java语言采用何种编码方案?有何特点?

java语言采用Unicode编码标准,Unicode(标准码),它为每个字符制订了一个唯一的数值,因此在任何的语言,平台,程序都可以放心的使用。

什么是字节码?

Java源代码经过虚拟机编译器编译后产生的文件,即.class的文件,可在虚拟机中运行。

为什么不直接解释源码,而是先把java代码转化为字节码,用JVM执行字节码?

1、跨平台
C++直接编译成机器码,由操作系统运行,而JAVA是先编译成字节码,由JVM解释运行,这个环节比C++增加了性能消耗,目的是为了JAVA可以在不同的操作系统上通过不同的虚拟机运行,也是 JAVA 里所说的一次编译到处运行的道理。而且现在JVM的性能已经有了飞跃的改进,在性能上也与 C++不相上下。
2、安全性
JVM相当于运行环境的隔离

java有哪些数据类型?

1、8种基本数据类型
整数类型(byte,short,int,long)、浮点类型(float,double)、字符型(char)、布尔型(boolean)
2、引用数据类型
类(class)、接口(interface)、数组([])

访问修饰符有哪些?

抽象类和接口的区别?

抽象类使用abstract关键字声明,子类使用extends关键字来继承抽象类;接口使用interface关键字声明,子类使用implements关键字来实现接口。
抽象类可以有构造器,接口不能有构造器。
抽象类中的方法可以是任意访问修饰符,接口方法默认修饰符是public。
一个类最多只能继承一个抽象类,一个类可以实现多个接口。

抽象类能使用 final 修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承。

重写与重载的区别?

重写:发生在父子类,方法名、参数列表必须相同,抛出的异常小于等于父类,访问修饰符大于等于父类。
重载:发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与返回值、访问修饰符无关。

==和equals的区别?

== : 基本数据类型比较的是值,引用数据类型比较的是内存地址
equals() : 如果类没有覆盖 equals() 方法,等价于==;类覆盖了 equals(),对比内容。

静态变量和实例变量的区别?

静态变量: 静态变量不属于任何实例对象,属于类,所以在内存中只会有一份。
实例变量: 属于实例对象的,在内存中,创建几次对象,就有几份成员变量。

静态方法和实例方法的区别?

调用静态方法可以无需创建对象,可以使用"类名.方法名"的方式。
静态方法只允许访问静态成员(即静态成员变量和静态方法),不允许访问普通的成员变量和方法;实例方法无此限制。

什么是hashCode()?

hashCode() 的作用是获取哈希码,返回一个int整数,确定该对象在哈希表中的索引位置。

为什么要有hashCode?

把对象加入HashSet时,会先计算对象的hashcode值来判断对象加入的位置,如果没有相符的hashcode,认为没有重复对象;如果发现相同hashcode值的对象,则调用equals()方法来检查对象是否真的相同,大大提高了执行速度。

hashCode()与equals()的关系?

如果两个对象相等,hashcode一定相同;两个对象有相同的hashcode值,它们不一定相等。因此,equals方法如果被覆盖,hashCode方法也必须被覆盖。

java是值传递,还是引用传递?

2种都有
值传递是对基本型变量而言的,传递的是变量的副本,改变副本不影响原变量。
引用传递是对对象而言的,传递的是对象地址的副本,并不是原对象 。

什么是自动装箱与拆箱?

装箱:将基本类型用对应的引用类型包装
拆箱:将包装类型转换为基本数据类型

什么是主类?

一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中,这个主类是指包含main()方法的类。主类是Java程序执行的入口点。

switch是否能作用在byte上?long上?String上?

Java5以前,只能是byte、short、char、int,Java7开始,可以是String,但long不可以的。

最有效率的方法计算2乘以8?

2<<3

Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

向上取整:Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。

short s1 = 1; s1 = s1 + 1; 有错吗? short s1 = 1; s1 += 1; 有错吗?

对于 short s1 = 1; s1 = s1 + 1; 由于 1 是 int 类型,因此 s1+1 运算结果也是 int型,需要强制转换类型才能赋值给 short 型。
short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强制类型转换。

final finally finalize的区别?

final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。
finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。
finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾回收器来调用,当我们调用System.gc() 方法的时候,由垃圾回收器调用finalize(),回收垃圾,一个对象是否可回收的最后判断。

break、continue、return的区别?

break:结束当前循环体
continue:跳出本次循环,继续执行下次循环
return:结束当前的方法,直接返回。

this和super的区别?

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针;super指向自己父类对象的一个指针。

Java 基础理论知识相关推荐

  1. 工程计算软件_软件工程师的计算机基础理论知识体系

    想要成为一名合格的软件工程师,需要学习的计算机方面的很多知识和理论,这里给大家通俗的说下需要知道的基础理论知识体系有哪些. 以某大学的计算机相关专业的四年课程举例: Java语言.C语言.Python ...

  2. 论基础理论知识的重要性

    前言 在计算机行业工作的人们,最大的感触就是这个行业里总是会出现很多的新东西,各种技术.框架等等,变化无处不在,有很大一部分人都比较焦虑.在一些论坛或者社区里面总是有人在问如何学习一门新技术?怎样才能 ...

  3. Java基础看jvm,JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  4. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  5. java 空语句_Java空语句怎么写才正确?这样的Java基础知识才是你需要的

    [摘要]在很多的高级语言中,有专门的赋值语句,我希望大家一定要了解JavaJava空语句怎么写才正确?这样的Java基础知识才是你需要的,今天小编就带大家看看Java空语句怎么写才正确?这样的Java ...

  6. 生活点滴:java基础知识细化

    生活点滴:java基础知识细化 一.前言 越是对一门语言深入了解,就会发现自己不知道的东西越多,这才是走向了正道,同样的,对于java语言特性的学习,笔者也只是初窥门径. 二.java基础知识思考 i ...

  7. 【转】Java基础知识整理

    本博文内容参考相关博客以及<Java编程思想>整理而成,如有侵权,请联系博主. 转载请注明出处:http://www.cnblogs.com/BYRans/ PDF版下载链接:<Ja ...

  8. java基础知识之初识java

    java基础知识之初识java JAVA基础课后总结 一 1.计算机程序 定义:程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合. 2.指令 定义:指令就是指示机 ...

  9. Java开发知识之Java面相对象

    Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这 ...

最新文章

  1. MyBatis-Spring(四)--MapperFactoryBean实现增删改查
  2. ros安装-Ubuntu14.04
  3. ncf 推荐系统_浅析神经协同过滤NCF在推荐系统的应用
  4. Spring 实战-第一章-基本概念
  5. 拼接 结果集_JUST技术:利用轨迹拼接分析实时可达区域|技术前沿
  6. 冰兮坊Java_java 中文字符 获取首字母(一级二级字符)
  7. 小米改鸿蒙系统,小米、OV傻眼 魅族要用鸿蒙系统!
  8. 想搞一套AI问答游戏系统?简单,Google又开源了
  9. WordPress配置
  10. 阿里ai布局开始_如何从AI开始?
  11. 免杀技术有一套(免杀方法大集结)
  12. 冬虫夏草之技术路线图之二【“术”——业务篇】
  13. SEO当下的力量,你应该关注的4个属性
  14. Publish报文及其响应分析
  15. vue+element_ui上传文件,并传递额外参数
  16. 阿里面试必过的 Java 面试参考指南全集
  17. DontDestroyOnLoad带来的麻烦
  18. 相处,靠真心;深交,靠人品
  19. 一部讲计算机软件高手的电视剧,最好看的5部电竞题材电视剧,部部让你热血澎湃...
  20. MindSpore模型精度调优实战:如何更快定位精度问题

热门文章

  1. 什么样的热设计是好的热设计?
  2. Microsoft Excel 教程:如何在 Excel 中插入或删除行和列?
  3. Shader山下(一)第一个Shader
  4. Excel day 01 基本操作1
  5. 光纤耦合电光调制器市场现状及未来发展趋势
  6. 爱数助力中国银行苏州分行信息化建设
  7. DAMA数据治理认证 CDGA 知识点总结:0.CDGA、CDGP介绍
  8. javascript了解掌握
  9. threejs基本知识5 (贴图)
  10. 服务器运维业绩,中兴通讯副总裁郭树波:力争2021年服务器业绩增长超过60%