学习JavaEE的日子 day02 IDE,变量,基本数据类型

Day02

一、Hello程序的扩展

1.代码详解

//公有的类,叫做Hello
public class Hello{

	//公有的静态的无返回值的方法,叫做main(这种固定写法的方法叫做主方法)
	public static void main(String[] args){
		
		//打印语句("内容");
		System.out.println("HelloWorld...1");
		System.out.println("HelloWorld...2");
		System.out.println("HelloWorld...3");

	}
}

public - 公有的 class - 类 Hello - 类名
static - 静态的 void - 无返回值的 main - 方法名
String - 字符串 ps:“好好学习”
String[] - 字符串数组 ps:[“詹姆斯高斯林”]
args:数组名

public static void main(String[] args){ } //主方法
理解:系统运行该类,会找到该类的主方法,从上往下执行方法里的代码

2.代码细节

1.public修饰的类名必须和文件名一致

  1. Java是一门大小写敏感的语言
  2. 括号都是成双成对的
  3. 方法里的代码都是从上往下执行-顺序执行
  4. 方法中的代码又叫做执行语句,执行语句用分号结束

二、Java编码规范

1.书写格式

经验:灵活使用tab键,提高代码的可读性

2.代码注释

理解:给程序员解释代码信息

注释描述
//注释内容单行注释
/*注释内容*/多行注释
/**注释内容*/文档注释

编译的过程:.java -> .class

反编译的过程:.class -> .java

注意:

  1. xjad可以实现反编译的功能
  2. 注释不会随着代码的编译而编译到.class文件中

三、Path的作用

%JAVA_HOME%/bin --> javac.exe 和 java.exe

在path中配置了某个文件夹,代表在其他任何文件夹里都可以打开配置的文件夹中的文件

四、Java的跨平台特性

在这里插入图片描述

Java比较特殊,大致归类为解释型语言,该语言不属于传统的解释型语言也不属于传统的编译型语言,该语言将源代码通过编译器成编译成字节码文件(中间文件/class文件),字节码文件不能被系统直接执行,但是可以被安装在该平台上的Java虚拟机(VM)进行解释执行。换言之,Java源码被编译成字节码文件,该字节码文件被各大平台上的Java虚拟机解释执行,实现了跨平台特性,但是跨平台的前提是平台上必须安装相匹配的Java虚拟机。

五、Java的体系划分

JavaSE – J2SE – 核心版本

JavaEE – J2EE – 企业级版本(服务端)

JavaME – J2ME – 微型版本(移动端) - 过时

Android程序员:JavaSE、AndroidSDK

后端程序员:JavaSE、JavaEE、框架、微服务

六、Java发展历史

七、IDE

理解:编码环境,编写代码的工具

记事本 -> notepad++ -> eclipse -> IDEA

八、编码问题

出现原因:编写和解码不一致

解决思路:把编码格式调成一致

解决方案一:javac -encoding UTF-8 Test01.java

理解:以UTF-8的编码格式编译Test01.java

缺点:每次编译时都必须写 -encoding UTF-8 ,特别麻烦

解决方案二:

设置Notepad++的编码格式(设置->首选项->新建->ANSI)

注意:必须把之前的Test01.java删除后,再次新建才能生效!!!

九、关键字

理解:Java给我们提供的具有特殊意义的单词

经验:后续的课程中会逐一学习每个关键字的用法

在这里插入图片描述

十、标识符

理解:给类、接口、方法、变量取名字时使用到的字符序列

public class 类名-标识符{
    public static void 方法名-标识符(String[] 变量名-标识符){
        
    }
}

组成部分:英文大小写字母、数字、$、_、中文

注意:

  1. 区分大小写
  2. 不能以数字开头
  3. 不能使用除了$、_以外的特殊符号
  4. 不能用Java的关键字
  5. 不要使用中文(考虑到编码格式)

十一、变量

概念:在程序执行过程中,可以发生改变的量

理解:变量就是存储单个数据的容器

变量的声明:数据类型 变量名 [= 值];

注意:

  1. =为赋值号,将赋值号右边的值赋值给左边的变量
  2. [ ]括起来的内容可写可不写,不违反变量声明的语法格式

十二、变量的注意事项

1.在同一个作用域中,变量名不能重复

  1. 变量没有初始化就不能使用

十三、基本数据类型

数据类型的划分:Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间
Java数据类型图:

在这里插入图片描述

详细内容:

在这里插入图片描述

Java数据类型取值范围表:

在这里插入图片描述

注意:
1.byte类型取值范围:-128~127
2.char类型取值范围 :0~65535
3.int类型取值范围:-2147483648~2147483647
4.1字节=8个比特(位)(计算机以二进制来存储数据)
要点:掌握各种数据类型占用的字节大小

变量使用的注意事项
1.变量要先初始化,才能使用
2.变量定义的作用域问题,同一个作用域变量名不能重名

float f = 0.01; //会报错,在java里小数会默认为double类型的,要加上f,–> float f =0.01f;

十四、基本数据类型的转型

取值范围:byte<short<int<long<float<double

自动转型 - 向上转型:取值范围小 转 取值范围大

强制转型 - 向下转型:取值范围大 转 取值范围小

特殊点

取值范围:byte < short < int < long < float < double
A.自动转换:取值范围从小往大的转,会默认转换

byte b = 10;
short s = b; //10
int i = s;
long l = i;
float f = l; //10.0
double d = f;
System.out.println(d);

B.强制转换:取值范围从大往小的转,会强制转换(向下转型)
语法结构:目标类型 变量名=(目标类型)(被转换的数据);

double d = 123.123;
//1.将double类型的数据强制转型成float类型的数据
//2.将转型后的数据赋值给左边
float f = (float)d;
System.out.println(f);

C.特殊点:
案例一:

byte b1 = 1;//1为int类型的数字字面量,但是1在byte类型的取值范围内,就直接赋值
byte b2 = 128;//128不在byte类型的取值范围内,就会报错
System.out.println(b1);//1
System.out.println(b2);//报错

//改正
byte b2 =(byte)128;//
System.out.println(b2);//-128
//128 -int: 0000,0000,00000,0000,0000,000,1000,0000  8个字节
//     byte:1000,0000 (-128)   2个字节
//强转是从最高位开始舍弃

案例二:

int i = 12345678901;//该数字超过了int类型的取值范围,会报错	

案例三:

long l1 = 12345678901;//1报错,12345678901是int类型的数字字面量,数字过大
long l2 = 12345678901L;//12345678901是long类型的数字字面量,不会报错

案例四:

float f1 = 1; //int -> float,自动转型
float f2 = 1.0; //double -> float,强制转型
//解决方案1:1.0为double类型,底层会开辟8字节的空间,然后再强转成float(4字节),
//可能会损失精度,可能浪费空间
//float f2 = (float)1.0;
//解决方案2:JVM直接认为1.0是float类型去开辟4字节个空间
//float f2 = 1.0f;
System.out.println(f1);
System.out.println(f2);

案例五:

char c = 'a';
int i = c;
System.out.println(i); //97

扩展:
数字字面量:代码中的数字
数字为整数默认类型为:int
数字为小数默认类型为:double

注意:基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。

十五.简答题

1.什么是跨平台性?

所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。

Java源码被编译成字节码文件,该字节码文件被各大平台上的Java虚拟机解释执行,实现了跨平台特性,但是跨平台的前提是平台上必须安装相匹配的Java虚拟机。

2.装箱和拆箱

装箱:将基本类型用它们对应的引用类型包装起来;

拆箱:将包装类型转换为基本数据类型;

原始类型: boolean,char,byte,short,int,long,float,double

封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

3.java 基本类型与引用类型的区别

基本类型保存原始值,引用类型保存的是引用值(引用值就是指对象在堆中所

处的位置/地址)

4.字节字符区别

字节是存储容量的基本单位,字符是数子,字母,汉子以及其他语言的各种符号。

1 字节=8 个二进制单位:一个一个字符由一个字节或多个字节的二进制单位组成。

5.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1+=1;有什么错?
  1. 对于 short s1=1;s1=s1+1 来说,在 s1+1 运算时会自动提升表达式的类型为 int, 那么将 int 赋予给 short 类型的变量 s1 会出现类型转换错误。

  2. 对于 short s1=1;s1+=1 来说 +=是 java 语言规定的运算符,java 编译器会对它 进行特殊处理,因此可以正确编译。==》 s = (short)((s) + (1))

6.int和Integer的区别

1、Integer是int的包装类,用于将int类型转换为对象;int是Java中的基础数据类型, 表示整数数值。

2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

4、Integer的默认值是null,int的默认值是0
5.int原生类型的使用比较高效,而Integer需要装箱和拆箱操作,所以在对性能要求较高的情况下,应当尽量使用int。

7. 3*0.1 == 0.3返回值是什么?

false,因为有些浮点数不能完全精确的表示出来

8.Java语言采用何种编码方案?有何特点?

Java语言采用Unicode编码标准,Unicode(标准码),它为每个字符制订了一个唯一的数值,因此在任何的语言,平台,程序都可以放心的使用。

9.float f=3.4; 是否正确 ?

不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成 float f =3.4 。

10.8种基本数据类型的默认值以及所占空间的大小

总结

  1. 学会md文档的编写
  2. Hello的细节
  3. Java编码规范
  4. IDE及编码问题
  5. 关键字、标识符 --重点
  6. 变量 – 重点
  7. 基本数据类型(使用、深入) – 重点
  8. 基本数据类型的转型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A 北枝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值