JAVA基础 2021学习理解

avatar
avatar
云惠网小编
2845
文章
1
评论
2021年4月7日21:18:47 评论 7 次浏览 4213字阅读14分2秒
摘要

2021年java基础理解前言一、JVM和GC1.java跨平台运行原理二、使用步骤1.引入库2.读入数据总结前言提示:资料来源:1.开课吧视频学习2.部分网络资料一、JVM和GC1.java跨平台运行原理java源码进行编译成字节码(.class文件),此文件可以被jvm虚拟机识别转化,然后通过在各个操作系统中的jvm虚拟机实现跨平台运行。去国外旅游,找一个既懂中文(字节码),也懂其他语言(日语、英语等)的翻译,可以让你无障碍的与他人进行交流。JVM理解jvm可以理解成一个可运行

jvm可以理解成一个可运行的java字节码的虚拟计算系统
jvm有一个解释器组件,可以实现java字节码和计算机操作系统之间的通信。
jvm屏蔽了底层运行环境的差别,实现了一次编译,随处运行
不同的平台,有不同的jvm。

3.2.3 转义字符(对char补充)

6.2 Arrays常用方法

3.2 数据类型

  • byte,short,int -> float ->long ->double
  • byte,short,int不会互相转换,它们三者在计算时会转换成 int 类型

3.1 变量

5.1 if条件语句


变量分类:
按所属的数据类型划分:

while 循环和 do-while 循环的区别? while:先判断条件,如果条件满足,再执行循环操作 do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

1.十进制转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;
a.正整数转二进制:除二取余,倒序排列,高位补零
b.负整数转换成二进制:整数转二进制,取反,结果加一
c.负整数转换成二进制:小数点以后的数乘以2,取结果的整数部分,然后用小数部分再乘以2,再取结果的整数部分(整数部分大于0的二进制转化倒叙排列+小数部分的正序排列)

switch(表达式){
case 取值 1: 语句块 1; break;
case 取值 n: 语句块 n; break;
default: 语句块 n+1; break;
}

jvm提供了系统线程,用来跟踪存储空间的分配情况,检查并且释放可以被释放的存储空间。
GC在程序运行时自动启用。

2 二进制转化(十进制)

符合条件,循环继续执行;否则,循环退出
特点:先判断,再执行

格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];
格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3…数组内容 n};
格式 3. 数据类型[] 数组名(属于只创建了数组引用名, 并未在内存创建数组空间);
格式 4. 数据类型[] 数组名称 = new 数据类型[]{内容 1,内容 2,内容 3…内容 n};

六、数组

  • 局部变量:方法或语句块内部定义的变量
  • 成员变量:方法外部、类的内部定义的变量

1 二进制基础理解

// 数组填充
Arrays.fill(arr, val);
// 数组排序 数字类型按顺序排 字符串按开头字母或数字顺序进行排序 (还有重构方法)
Arrays.sort(arr);
// 数组拷贝复制
Arrays.copeOf(arr, arr.length);
// 数组转化集合
Arrays.asList(arr);
// 数组转化集合
Arrays.asList(arr);
// 数组转流 可以使用流里面的方法
Stream stream = Arrays.stream(arr)

5.5 for 循环

for(初始化参数; 判断条件 ; 更新循环变量){
循环体;
}

java跨平台运行原理
java源码进行编译成字节码(.class文件),此文件可以被jvm虚拟机识别转化,然后通过在各个操作系统中的jvm虚拟机实现跨平台运行。
举个栗子:出国旅游,找一个既懂中文,也懂其他语言(日语、英语等)的翻译向导,可以让你无障碍的与他人进行交流。
这里面翻译向导相当于jvm虚拟机,国家相当于各个操作系统。

(++): 如果是变量前缀:先对此变量加 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量加 1
(- -): 如果是变量前缀:先对此变量减 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量减 1

按被声明的位置划分:

前言

一、JVM和GC

转义字符 意义 ASCII码值(十进制)
\n 换行,将当前位置移到下一行开头 010
\r 回车 ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\ 代表一个反斜线字符’’’ 092
代表一个单引号(撇号) 字符 039
" 代表一个双引号字符 034
		// 冒泡排序
// 初始化数组
int[] nums = {1,3,9,5,6,7,15,4,8};
// 设置临时变量 用来存储某个节点上的最大值
int temp;
// 外层控制执行次数 第一次循环相邻元素最多比较nums.length - 1
for (int i = 0; i < nums.length - 1; i++) {
// 内层控制比较的次数 外层每循环一次,就有最大值移动到末尾, 相应的末尾就不需要再进行比较 nums.length - i - 1
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(nums));
// 二分查找
// 设置目标元素
int target = 6;
// 设置第一次最大最小下标
int minIndex = nums[0];
int maxIndex = nums[nums.length - 1];
// 设置中间下标 3/2 = 1;4/2 = 2
int centerIndex = (minIndex + maxIndex) / 2;
while (true) {
// 下标值判断 每次一半的划分 进行二分逻辑查找
if (nums[centerIndex] > target) {
maxIndex = centerIndex - 1;
} else if (nums[centerIndex] < target) {
minIndex = centerIndex + 1;
} else {
centerIndex = (minIndex + maxIndex) / 2;
System.out.println("目标值下标为" + centerIndex);
break;
}
// 最小值大于最大值情况下
if (minIndex > maxIndex) {
System.out.println("此数不存在");
break;
}
// 每次循环更新中间下标
centerIndex = (minIndex + maxIndex) / 2;
}

三、数据类型和变量

  • 基本数据类型变量
  • 引用数据类型变量

四、运算符

1.java跨平台运行原理

自动类型转换:容量小的类型自动转换成容量大的数据类型

二、二进制


5.3 while 循环

5.2 switch 语句


返回值 = 条件表达式 ? 表达式1 : 表达式2
解析:条件表达式 为true则返回表达式1,否则返回表达式2

6.3 冒泡排序和二分查找


3.2.1 数据类型介绍

二进制:逢二进一,只有0和1俩个值。 // 0101 √ 2323 ×

总结

3.2.2 数据类型转换

类型 占用内存 值范围(含边界值) 默认值
整数型(int) 4 字节 -2 147 483 648 ~ 2 147 483 647(稍大于 20 亿) 0
短整数型(short) 2 字节 -32 768 ~ 32 767 0
长整数型(long) 8 字节 -9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L 0
字节型(byte) 1 字节 -128 ~ 127 0
浮点型(float) 4 字节 -3.40292347E+38-3.40292347E+38 0.0f
双 精 度 型(double) 8 字节 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
布尔型(boolean) 1 字节 true 或 false false
字符型(char) 2 字节 ‘ \u0000 - u\ffff ’ ‘\u0000 ’

4.2 三目运算符

资料来源:

switch 语句有关规则
表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
default 子句是可选的;
break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行!
Case 后面的执行体可写{ }也可以不写{ }


数据类型

long g = 100L;
int i = (int)g;

字节(Byte):一个字节由8个位组成。表示作为一个完整处理单位的7个二进制数码。

位(Bit):表示一个二进制数码0或1,是计算机存储信息的最基本单位。



五、流程控制

4.1 算术运算符(自增或自减)

2.十进制转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;
a.整数二进制转换为十进制:从低位开始按照2的0次方,2的1次方计算,所得结果相加。
b.负整数二进制转换成十进制:取反,结果加一,整数二进制转换为十进制。
b.小数转换成二进制:从高位开始按照2的-1次方,2的-2次方计算,所得结果相加。
建议:前期只要了解二进制基本转化、补码即可。

6.1 数组创建格式

JAVA基础 2021学习理解

  • 前言
  • 一、JVM和GC
    • 1.java跨平台运行原理
    • 2 JVM理解
    • 3 GC(垃圾回收器)
  • 二、二进制
    • 1 二进制基础理解
    • 2 二进制转化(十进制)
  • 三、数据类型和变量
    • 3.1 变量
    • 3.2 数据类型
        • 3.2.1 数据类型介绍
        • 3.2.2 数据类型转换
        • 3.2.3 转义字符(对char补充)
  • 四、运算符
    • 4.1 算术运算符(自增或自减)
    • 4.2 三目运算符
  • 五、流程控制
    • 5.1 if条件语句
    • 5.2 switch 语句
    • 5.3 while 循环
    • 5.4 do-while 循环
    • 5.5 for 循环
  • 六、数组
    • 6.1 数组创建格式
    • 6.2 Arrays常用方法
    • 6.3 冒泡排序和二分查找
  • 总结
if (条件语句) {…}
if (条件语句) {…} else {…}
if (条件语句) {…} else if (条件语句) {…}
if (条件语句) {…} else if (条件语句) {…} else {…}

先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断

八种基本类型 归为四种不同的数据类型。

3 GC(垃圾回收器)

while(条件表达式){
//语句块;
}
}

2 JVM理解

do {
循环操作
} while ()

5.4 do-while 循环

  1. 开课吧视频学习
  2. 部分百度资料
  3. 个人学习笔记

有可能造成精度降低或数据溢出,使用时要小心。
boolean 类型不能转换成任何其它数据类型。

强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符

人生无限,缓缓起航,修正改错,在满足完成任务的条件下,追求完善,全身而退。

补充:char类型输出对照ascii码表。


本文转自 https://blog.csdn.net/qq_43230154/article/details/115430385

腾讯云618
avatar
2w 字长文爆肝 JVM 经典面试题!太顶了! java

2w 字长文爆肝 JVM 经典面试题!太顶了!

如果你是中高级程序员,那我相信你一定被面试官问过JVM。下次再被问到JVM,你直接把老周的这篇文章丢给他吧!话不多说,让我们直接进入主题吧。JVM内存结构,常见异常,调优参数,调优...
JAVA初窥-DAY08 java

JAVA初窥-DAY08

JAVA初窥-DAY08面向过程与面向对象实例化及调用方法和成员变量面向过程与面向对象面向过程:注重的是某件事情过程中的每一个步骤的实现。面向对象:把面向过程中的每一个步骤交给一个...
腾讯云618
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: