热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java+集合+给键赋值_Java面试集合(四)

Java面试集合(四)1.jdk,jre,jvm之间的关系JVM是Java虚拟机,是Java跨平台的重要保障,JVM实现Java跨平台的前提,可以针对不同的操作系统,有不同的JVM

Java 面试集合 (四)

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

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

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

JRE 是 Java 运行时环境, 包含 JVM + 核心类库.

JDK 是 Java 开发工具包, 包含开发工具 + JRE.

ab7653affab982b574eb7acc55df2e04.gif

分析图

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

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

3. Java 中关键的保留字

Java 中有两个关键字目前没有用, 为 goto 和 const, 在 Java 中, 所有的关键字为小写.

4. 标识符

标识符规则:

可以使用字母, 数字,_ , 以及美元符号 $

, 在 Java 中可以使用中文命名, 但建议不用使用, 不能使用关键字, 也不能以数组开头, 注意区分大小写, 要见名知意

5. 驼峰命名法

类名和接口名, 如果有多个单词组成, 那么每个单词的首字母要进行大写, 如 HelloWorld

变量名和方法名, 如果有多个单词组成, 那么第一个单词的首字母要小写, 其余的单词开头的首字母要大写, 如 helloWorld

常量名, 无论有多少个单词组成, 所有字母都是大写, 强调一点的是每个单词之间要以 _ 隔开, 如 HELLO_WORLD

包名, 无论有多少个单词组成, 所有的字母都是小写, 强调一点的是每个单词之间用以 . 隔开, 如 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 作为开头 (09,af, 满 16 进 1)

进制间的转化

十进制转二进制: 不断除以 2, 然后取余数

二进制转十进制: 从最低位依次乘以 2 的位次次幂, 然后求和

同理:

十进制转其他进制: 除以对应的进制数, 然后取余数

其他进制转十进制: 从最低位依次开始, 按位次乘以进制的位次次幂, 然后求和

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

口诀: 三变一

八进制转二进制, 每一位八进制数都会产生三位二进制数字, 不足三位就补 0 即可.

口诀: 一变三

同理

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

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

9. 变量

格式:

数据类型 变量名 = 数据;inti=2;

// 变量的声明

inti;

// 变量的赋值

i=2;

// 存储

bit 为最小单位, 8 位为 1 字节 (byte, 简写为 B)

数据类型

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

基本数据类型byte-1short-2int-4long-8

float-4double-8char-2boolean

long---lfloat---f

ab7653affab982b574eb7acc55df2e04.gif

基本数据类型. png

引用数据类型

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

ab7653affab982b574eb7acc55df2e04.gif

引用数据类型. png

10. 数据类型的转换

数据类型的转换:

自动类型转换 / 隐式转换

强制类型转换 / 显式转换

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

ab7653affab982b574eb7acc55df2e04.gif

大包围小的

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

ab7653affab982b574eb7acc55df2e04.gif

转换// short char

// ok 可行 字面量如果在范围内允许转化

shorta='b';

charc=97;

// not 不可行 可能超过范围, 所以不允许转化

charc='a';

shortb=c;

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

doubled=3.14

inti=(int)d;

11. 运算符

+ - */ % + --

++ / -- 自增 / 自减intj=i++;// j = i ; i++

intj=++i;// ++i ; j = ++i

赋值运算符

&#61; &#43;&#61; -&#61; *&#61; /&#61; %&#61; &&#61; |&#61; ^&#61; <<&#61;>>&#61;>>>&#61;

关系运算符

> <>&#61; <&#61; &#61;&#61; !&#61;

逻辑运算符

& 与

Or 或

Not 非

^ 亦或

&& 短路与

|| 短路或

短路 表示如果前面的表达式正确, 后面的就不再运行

&&: 前边的表达式结果为 false, 后面的就不再运行

||: 前面为 true, 后面就不再运行

位运算

& | ^ <<左移 >> 右移 >>> 无符号右移 ~ 取反

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

| , 有 1 为 1.

三元运算符

格式:

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

运算符的优先级

() ~ &#43;&#43; -- ! */ % - <<>>>>> 关系 逻辑 & | ^ 三元 赋值

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

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. 数组

格式:

数据类型 [] 数组名 &#61; new 数据类型 [长度];

数据类型 [] 数组名 &#61; new 数据类型 []{元素 1, 元素 2, 元素 3...};int[]arr&#61;newint[]{2,3,4,5,6};

int[]arr&#61;{2,5,7,8,9};

数组的应用

数组名 [下标]

数组名. length

遍历数组

获取数组中最值

数组的排序

反转数组

数组元素的查找for(inti&#61;0;i

System.out.println(arr[i]);

}

for(inti:arr){

System.out.println(i);

}

// 冒泡排序

for(inti&#61;1;i

for(intj&#61;1;j<&#61;arr.length-i;j&#43;&#43;){

if(arr[j-1]>arr[j]){

inttemp&#61;arr[j-1];

arr[j-1]&#61;arr[j];

arr[j]&#61;temp;

}

}

}

// 选择排序

for(inti&#61;1;i

for(intj&#61;i;j

if(arr[i-1]>arr[j]){

inttemp&#61;arr[i-1];

arr[i-1]&#61;arr[j];

arr[j]&#61;temp;

}

}

}

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

15. 内存

Java 内存:

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

栈内存用来存储的是变量

堆内存用来存储的是对象

16. 方法

格式:

修饰符 返回值类型 方法名 (参数列表){

方法体;

return 返回值;

}

方法的重载

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

方法的传值

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

17. 快捷键

Ctrl &#43; x 剪切

Alt &#43; / 快捷提示键

Ctrl &#43; Shift &#43; o 导包

Ctrl &#43; Shift &#43; f 调整格式

Ctrl &#43; F 搜索

Ctrl &#43; D 删除一行

18. 成员变量和局部变量

成员变量在类中, 局部变量在方法中

成员变量作用在整个类中, 局部变量只能在它的方法中, 或者语句中

成员变量存储在堆内存中, 并自动赋予默认值;

局部变量存储在栈内存中, 不自动赋予默认值

构造方法, 与类名同名, 没有返回值, 构造方法可以重载

this 关键字, 代表本类中的对象的引用

可以用 this 调用本来中的对应形式的构造方法

面向对象的特征为封装, 继承, 多态

来源: http://www.jianshu.com/p/d6417f60d2b4



推荐阅读
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • java——题型和考点大纲
    题型选择题10*2填空题10*1一二八十程序阅读题4*5读程序写结果派生类的构造方法static十十一简答题4*5十一十二十三(setmap)程序题3* ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 子类从父类继承所有的成员(字段,方法,嵌套类),构造方法不属于成员,所有子类不能继承,但是子类可以调用父类的构造方法对于private方法和属性,子类一定是继承了的,但是没有访问权 ... [详细]
  • 微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]jvm一行代码是怎么运行的首先,java代码会被编译成字 ... [详细]
  • 尾部|柜台_Java并发线程池篇附场景分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java并发-线程池篇-附场景分析相关的知识,希望对你有一定的参考价值。作者:汤圆个人博客 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • JVM:33 如何查看JVM的Full GC日志
    1.示例代码packagecom.webcode;publicclassDemo4{publicstaticvoidmain(String[]args){byte[]arr ... [详细]
  • Java面试题系列:将面试题中比较经典和核心的内容写成系列文章持续在公众号更新,可巩固基础知识,可梳理底层原理,欢迎大家持续关注【程序新视界】。本篇为面试题系列第2篇。常见面试问 ... [详细]
author-avatar
紫木之阁_229
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有