Java菜鸟之路1

Java SE Day1

2020.5.13第一次写博客,记录自己Java学习坎坷的路程,希望自己能一直坚持下去,回头再来看的时候能有所收获。
正式学习Java之前,有一些需要直到的预备知识,Let’s go

进制

进制的转换问题老生常谈,再来复习一遍:
十进制转二进制: 除2取余
二进制转十进制:
小数点前或者整数要从右到左用二进制的每个数去乘以2的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。

1101.01(2)=120+021+122+123 +02-1+12-2=1+0+4+8+0+0.25=13.25(10)

字节

位:bit,有时也简写成b,是计算机表示数据的最小单位
字节:Byte,习惯用大写B来表示,一个字节是8位(bit)

Java的运行环境

Java的虚拟机JVM:
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

JRE:
Java运行环境是一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序。JRE的内部有一个Java虚拟机以及一些标准的类别函数库。

JDK:
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

一句话来说JDK中包含了JRE

Java的标识符

与其他语言相同,在Java中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名。
而Java对标识符有一些特别的要求:
1、标识符可以包含英文字母(大小写)、数字、$ 与_(下划线)
2、标识符不能以数字开头
3、标识符不能是关键字
tips:$这个符号在Java中与内部类有关,个人感觉不推荐命名的时候主动使用

推荐的命名规范(不全面):
1、类名:首字母大写,后面每个字母首字母大写
2、变量名和方法名:首字母小写,后面每个字母大写
3、常量全部大写

常量

常量:在计算机程序运行时,不会被程序修改的量

Java中有以下类型的常量:
1、字符串常量(双引号)
2、整形常量
3、浮点数常量
4、字符常量(单引号),单引号中有且只有一个字符
5、布尔常量:True 和 False
6、空常量:Null

变量

变量的概念比较拗口,可能被明确为是能表示可变状态、具有存储空间的抽象
Java中变量首先要分为两大类:基本数据类型与引用数据类型

基本数据类型
基本数据类型有8且只有8种,需要牢牢记住:
整形:byte(1字节),short(2字节),int(4字节),long(8字节)
浮点型:float(4字节),double(8字节)
字符型:char(2字节)
布尔型:boolean(1字节)

引用数据类型
数组、类、接口、Lambda表达式

一些注意事项:
1、变量名不可重复
2、浮点型的数据可能只是一个近似值
3、数据表达的范围和本身所占用的字节大小不一定相关,比如4个字节的float就比8个字节的long表达范围更广泛
4、整型数据默认int类型,想使用long类型,在数据末尾添加字母L,大小写均可,推荐大写
5、浮点型数据默认double类型,想使用float类型,数据末尾添加F
6、变量的使用不能超过它的定义域(定义变量的上个大括号开始到大括号结束)

数据类型转换

在Java中,如果数据类型不匹配,将会发生数据类型转换。
分为:自动类型转换与强制类型转换

自动类型转换
1、代码不需要处理,自动完成
2、数据范围从小到大时发生

long num1 =  100;
//右侧默认int 左侧为long,从小到大发生自动类型转换
double num2 = 30F;
//右侧为float 左侧为double

强制类型转换
代码需要手动处理,不会自动完成

int num = (int)20L;
//long 转 int 需要强制类型转换

几点注意:
1、强制类型转换一般不推荐使用,因为可能会发生精度的损失
2、byte、short、char这三种类型的数据可以进行数学运算,在运算时会先被提升为int类型,再进行运算

if-else语句与三元运算符

介绍以下Java中的三元运算符:
(关系表达式) ? 表达式1 : 表达式2;
简单解读一下,首先判断关系表达式,为真,返回表达式1的值,为假,返回表达式2的值

三元运算符和if-else语句可以互相转换,过于简单。

Switch语句

与if语句相同,在C语言中就已经见过面

switch(exp){
	case 常量值1:
			statement;
			break;
	...
	case 常量值n:
			statement;
			breakdefault:
			statment;
}

同样是几点注意:
1、case后的常量值是不允许重复的
2、常量值支持以下数据类型:
基本数据类型:byte、short、char、int
引用数据类型:String(JDK1.7添加)、enum(枚举类型)
3、break可以省略,但会发生穿透,
4、default用于case匹配失败时用,也可以省略

循环

循环充满了代码生活的方方面面,与C相同,分为for、while、do-while三种类型,这里就不赘述了。
三种循环可以互相转换,在明确循环次数的情况下,可以for循环;若不明确,可以采用while

除了循环本身,两个关键字值得引起我们的注意
continue
continue一旦执行,立刻跳过本次循环剩余内容,开始下一次循环
break
break一旦执行,整个循环语句立刻结束,循环被打断了

当然循环语句中也会有第三个关键字return,它常常带领我们跳出方法

Java的内存

今天的最后一块内容,对很多人来说是一个陌生的领域,先进行简单的了解

Java的内存分为以下部分
1、栈(Stack)
(1)方法在栈内存中运行
(2)栈内存存放的时基本数据类型的变量和对象的地址值(引用)
2、堆(Heap)
(1)new出来的东西存放在堆中
(2)成员变量的内容在堆中
(3)成员方法的地址值在堆中,内容在方法区中
(4)堆内存中的数据有默认值(类的成员变量会自动初始化的真相)
整数:0
浮点数:0.0
字符:’\u0000’
布尔:false
引用输类型:null
3、方法区(Method Area):
存储 .class文件
4、本地方法栈(native method stack):
与操作系统相关
5、寄存器(PC register):
与cpu相关

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值