博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java面试集合(四)
阅读量:5845 次
发布时间:2019-06-18

本文共 3928 字,大约阅读时间需要 13 分钟。

1. jdk,jre,jvm之间的关系

JVMJava虚拟机,是Java跨平台的重要保障,JVM实现Java跨平台的前提,可以针对不同的操作系统,有不同的JVM

可以说Java语言是跨平台的,但JVM不是。

JREJava运行时环境,包含JVM+核心类库。

JDKJava开发工具包,包含开发工具+JRE

2. Java的分类 - JAVASE、JAVAEE、JAVAME

JavaSE为标准版,JavaEE为企业版,JavaME为微型版

3. Java中关键的保留字

Java中有两个关键字目前没有用,为gotoconst,在Java中,所有的关键字为小写。

4. 标识符

标识符规则:可以使用字母,数字,_ ,以及美元符号 $,在Java中可以使用中文命名,但建议不用使用,不能使用关键字,也不能以数组开头,注意区分大小写,要见名知意

5. 驼峰命名法

  1. 类名和接口名,如果有多个单词组成,那么每个单词的首字母要进行大写,如HelloWorld
  2. 变量名和方法名,如果有多个单词组成,那么第一个单词的首字母要小写,其余的单词开头的首字母要大写,如helloWorld
  3. 常量名,无论有多少个单词组成,所有字母都是大写,强调一点的是每个单词之间要以 _ 隔开,如HELLO_WORLD
  4. 包名,无论有多少个单词组成,所有的字母都是小写,强调一点的是每个单词之间用以 . 隔开,如 cn.dashucoding.com

6. 注解

Java中的注解是用来解释说明代码的作用,有何用途,作为一名合格的程序员,必须懂得给代码添加注解。

单行注释

// 注释文字复制代码

多行注释

/*注释文字*/复制代码

文档注释

/**注释文字*/复制代码

文档注释中的文字是可以提取出来形成文档的

7. 字面量

字面量:指的是在计算机中不可变的值

1.整数常量(所有的整数) 2.小数常量(所有的小数) 3.字符常量(将一个字母、数字、符号,用 ‘’ 标识起来) 4.字符串常量(将一个或者多个字符用 “” 标识起来) 5.布尔常量(true和false) 6.空常量(null)

8. 进制

**二进制:**以0b/0B作为开头 (0~1,满2进1) **八进制:**以0作为开头(0~7,满8进1) **十进制:**没有特殊标识(0~9,满10进1) **十六进制:**以0X/0x作为开头(0~9,a~f,满16进1)

进制间的转化

**十进制转二进制:**不断除以2,然后取余数 **二进制转十进制:**从最低位依次乘以2的位次次幂,然后求和

同理: 十进制转其他进制:除以对应的进制数,然后取余数 其他进制转十进制:从最低位依次开始,按位次乘以进制的位次次幂,然后求和

二进制转八进制,也是从低位开始,每三位二进制为一组,产生一个八进制数字,最高位不足三位,就补0,凑齐三位即可。 口诀:三变一

八进制转二进制,每一位八进制数都会产生三位二进制数字,不足三位就补0即可。 口诀:一变三

同理 二进制转十六位进制:口诀为四变一 十六位进制转二进制:口诀为一变四

9. 变量

格式:

数据类型 变量名 = 数据;int i = 2;// 变量的声明int i;// 变量的赋值i = 2;// 存储bit为最小单位,8位为1字节(byte,简写为B)复制代码

数据类型

数据类型:基本数据类型引用数据类型

基本数据类型

byte-1 short-2 int-4 long-8 float-4 double-8 char-2 boolean long---l float---f

引用数据类型

引用数据类型:数组,类,接口

10. 数据类型的转换

数据类型的转换:

  1. 自动类型转换 / 隐式转换
  2. 强制类型转换 / 显式转换

**自动类型转换:**小的类型可以自动转为大的类型

char可以转换为intlong可以转换为float,其他往前转换,可能产生精度损失

// short char // ok 可行 字面量如果在范围内允许转化short a = ‘b’;char c = 97;// not 不可行 可能超过范围,所以不允许转化char c = ‘a’;short b = c;复制代码

**强制类型转换:**大类型强制转化为小类型,会可能会导致数据丢失精度

// 强制类型转换double d = 3.14int i = (int)d;复制代码

11. 运算符

+ - * / % ++ --复制代码

++ / -- 自增/自减

int j = i++;  // j = i ; i++int j = ++i;  // ++i ; j = ++i复制代码

赋值运算符

= += -= *= /= %= &= |= ^= <<= >>= >>>=复制代码

关系运算符

> < >= <= == !=复制代码

逻辑运算符

& 与Or 或Not 非^ 亦或&& 短路与|| 短路或短路 表示如果前面的表达式正确,后面的就不再运行&&:前边的表达式结果为false,后面的就不再运行||:前面为true,后面就不再运行复制代码

位运算

& | ^ << 左移 >> 右移 >>> 无符号右移 ~ 取反复制代码

&,将1看作true,将0看作false,0&任何数为0,1&奇数为1,1&偶数为0。

| ,有1为1。

三元运算符

格式:

逻辑值?表达式1:表达式2

运算符的优先级

() ~ ++ -- ! * / % + - << >> >>> 关系 逻辑 & | ^ 三元 赋值复制代码

一元运算 > 二元运算 > 三元运算 > 赋值

12. 流程控制

if,if-else, if-else if

分支结构

if(逻辑值){代码块;}复制代码
if(逻辑值){代码块;} else {代码块;}复制代码
switch(逻辑值){case 值:代码块;break;case 值:代码块;break;...}复制代码

switch支持byte/short/char/int/String

while(逻辑值){代码块;}复制代码
do{代码块;} while(逻辑值);复制代码

while, do-while

for(定义循环变量; 控制条件; 改变循环变量){	代码块;}复制代码

13. break和continue

break:表示终止当前的一层循环结构 continue:表示跳过当前一次循环继续下一个循环

14. 数组

格式:

数据类型[] 数组名 = new 数据类型[长度]; 数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3...}; int[] arr = new int[]{2,3,4,5,6}; int[] arr = {2,5,7,8,9};

数组的应用

  • 数组名[下标]
  • 数组名.length
  • 遍历数组
  • 获取数组中最值
  • 数组的排序
  • 反转数组
  • 数组元素的查找
for(int i = 0; i < arr.length; i++){System.out.println(arr[i]);}复制代码
for(int i : arr){System.out.println(i);}复制代码
// 冒泡排序for(int i = 1; i < arr.length; i++){for(int j = 1; j <= arr.length - i; j++){ 		if(arr[j - 1] > arr[j]){			int temp = arr[j - 1];			arr[j - 1] = arr[j];			arr[j] = temp;		}	}}复制代码
// 选择排序for(int i = 1; i < arr.length ; i++){ 	for(int j = i; j < arr.length; j++){ 		if(arr[i - 1] > arr[j]){			int temp = arr[i - 1];			arr[i - 1] = arr[j];			arr[j] = temp;		}	}}复制代码

数组:Arrays.sort, Arrays.toString, System.arraycopy , Arrays.copyOf

15. 内存

Java内存: 栈内存、堆内存、方法区、本地方法栈、PC计数器(寄存器)

栈内存用来存储的是变量 堆内存用来存储的是对象

16. 方法

格式:

修饰符  返回值类型 方法名(参数列表){方法体;return 返回值;}复制代码

方法的重载

方法名相同但参数列表不同

方法的传值

方法的传值,基本类型传实际值,引用类型传地址

17. 快捷键

Ctrl + x 剪切Alt + / 快捷提示键Ctrl + Shift + o 导包Ctrl + Shift + f	调整格式Ctrl + F 搜索Ctrl + D 删除一行复制代码

18. 成员变量和局部变量

  • 成员变量在类中,局部变量在方法中
  • 成员变量作用在整个类中,局部变量只能在它的方法中,或者语句中
  • 成员变量存储在堆内存中,并自动赋予默认值;
  • 局部变量存储在栈内存中,不自动赋予默认值

构造方法,与类名同名,没有返回值,构造方法可以重载 this关键字,代表本类中的对象的引用 可以用this调用本来中的对应形式的构造方法 面向对象的特征为封装,继承,多态

结语

  • 下面我将继续对JavaAndroid中的其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

转载地址:http://gshcx.baihongyu.com/

你可能感兴趣的文章
使用 express 轻松实现反向代理服务器
查看>>
再探Watson服务(二)
查看>>
connect to host ssh.github.com port 22: Connection timed out解决方法
查看>>
AsyncTask 用 publishProgress 遇到的坑
查看>>
[LeetCode] Clone Graph
查看>>
APICloud案例源码、模块源码、考试源码、开发工具大集合!赶快收藏
查看>>
保护 Equatable 的实现
查看>>
京东购物在微信等场景下的算法应用实践
查看>>
Chef宣布100%开源,要走红帽模式?\n
查看>>
“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战
查看>>
利用人工智能提升团队包容性
查看>>
Oracle发布多语种虚拟机平台GraalVM 1.0
查看>>
Gil Zilberfeld问答:敏捷产品的规划与管理
查看>>
Lisk沙箱漏洞分析及解决方案
查看>>
Qt 工程管理
查看>>
Azul Systems推出Falcon,一个基于LLVM的新的Java即时编译器
查看>>
某些编程语言更容易出错?研究人员提出质疑
查看>>
90 后 CTO 创业 6 年,做了一件改变互联网的“小事”
查看>>
首份《敏捷回顾年度报告》发布
查看>>
Slack桌面3.0迁移到BrowserView
查看>>