Java面试集合(四)

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.14
int 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 点赞

原文地址:https://www.cnblogs.com/dashucoding/p/9527579.html

时间: 2024-10-15 18:53:30

Java面试集合(四)的相关文章

java面试第四弹(算法和编程)思路

1.编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔. 创建两个FileManager分别是a.txt和b.txt 参数需要创建一个char数组来进行回车符分割和空格分割 FileManager a = new FileManager("a.txt",new char[]{'\n'}); FileManager b = new FileManager("b.txt

Java之集合(四)Vector和Stack

转载请注明源出处:http://www.cnblogs.com/lighten/p/7296023.html 1.前言 本章介绍Java集合List中的Vector和其子类Stack.Vector类是Java 1.0就提供的一个集合类,其实现和上章讲解的ArrayList几乎一样,在下面会简单介绍一下(不然就没有可说的了),其子类Stack是一个程序员都比较熟悉的栈结构,特点就是先入后出,Stack其实也较为简单,会简单描述一下. 2.Vector 在前言中也谈到了Vector与ArrayLis

Java面试集合(六)

1. abstract抽象 什么是abstract,中文为抽象,从具体事物抽出,概括它们共同的方面,本质属性与关系等,称为抽象.看不见,摸不着的东西叫做抽象,抽象是人们对世界万物的感觉,用特定的图像表达出来,要理解抽象的东西,就必需从内心感受它们. 什么是抽象类 抽象类的定义和使用格式 abstract class 类名{ 类体 } class 类名 extends 抽象类 { //实现全部抽象方法 } 抽象类,用abstract修饰的类为抽象类,一个类如果它的所有子类都重写了这个方法,那么给它

java面试第四天

修饰符static: 把对象相关的变成类相关的,它可以修饰属性.方法.代码块和内部类 static修饰属性(类变量): 那么这个属性就可以用" 类名.属性名 "来访问,也就是使这个属性成为本类的类变量,为本类对象所共享. 类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件读入JVM(java虚拟机),这个过程称为类的加载.JVM会通过类路径(CLASSPATH)来找字节码文件.需要的时候才会进行类加载,生成对象时是先加载后构造 类变量,

Java大厂笔试&amp;&amp;面试集合大全目录

面试技巧 掌握面试技巧,提升自身软实力! HR面试都会问什么问题?(上) HR面试都会问什么问题?(下) 作为一技术人员,面试前都需要做哪些准备? 面试题 Java各个阶段面试题,帮你提升自我,拿到高薪! Java面试集锦:25道线程类相关面试题与答案(一) Java面试集锦:集合思维导图与30道集合面试题 通过面试题,让我们来了解Collection 跳槽季,金三已过,银四你准备好了吗? 面试必备的数据库悲观锁与乐观锁 框架类 Spring面试题集锦(精选) 笔试题 JAVA相关笔试题,祝各位

【JAVA秒会技术之秒杀面试官】秒杀Java面试官——集合篇(一)

[JAVA秒会技术之秒杀面试官]秒杀Java面试官--集合篇(一) [JAVA秒会技术之秒杀面试官]JavaEE常见面试题(三) http://blog.csdn.net/qq296398300/article/category/6876287

复习java基础第四天(集合)

List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引 List 允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 默认按元素的添加顺序设置元素的索引. List 集合里添加了一些根据索引来操作集合元素的方法: 另外: List 额外提供了一个 listIterator() 方法,该方法返回一个 ListIterator 对象, ListIterator 接口继承了 Iterator 接口,提供了专门操作 List 的方法: boolean hasPr

春节过后就是金三银四求职季,分享几个Java面试妙招,轻松搞定HR!

春节过后就是金三银四,分享几个Java面试妙招,轻松搞定HR!2020年了,先祝大家新年快乐!今年IT职位依然相当热门,特别是Java开发岗位.软件开发人才在今年将有大量的就业机会.春节过后,金三银四求职季到来,下面教你8个"妙招",希望能帮你顺利面试成功.1.知道如何写算法如果你申请的是软件工程师的工作,那么显然你需要知道如何编码.写代码脚本其实与写算法来解决软件问题略有不同.用人单位可能会提出这样的问题,"写一个算法,可以从链表中找到某个元素,并将此元素挪到列表末尾.&q

java集合四种遍历方式

package conection; import java.util.Iterator;import java.util.LinkedList;import java.util.List; public class Ergodic { public static void main(String[] args) {     // TODO Auto-generated method stub    /*    * java集合类的四种遍历方式    *     */    List<Integ