Java初识
JDK: java开发工具包 包含JRE
JRE: java程序的运行环境
Javac:编译命令 * .Java-> *.class(计算机JVM读取的二进制文件)
Java:运行命令java Test (运行Test类-main)
一、数据类型
1.八大数据类型
Java、C++强类型语言;python、js弱类型语言
强类型语言在定义一个变量的时候,必须告知编译器这个变量的类型(强类型)
在java中数据类型分为两大类:1.八大基本数据类型 2.引用数据类型
且数据类型都有默认值(引用数据类型默认值为NULL)
数值型:默认值0(结合类来观察,变量必须定义在类中)
1.byte 字节型 1个字节 表示范围【 - 2^ 7 —— 2 ^ 7-1】默认值为0
在进行IO编程时使用,文件输入输出网络传输都是Byte
2.short 短整型 2个字节 【- 2 ^15 —— 2 ^15-1】默认值为0
3.int 整形 4个字节 默认值为0
//声明一个整型变量a
int a=10;
//java中常用的输出函数,所有数据类型都可以直接使用println进行输出
System.out.println(a);
变量:定义之后这个值可以修改但类型不能改变(eg:int->boolean)
将c放在类中 ,c不是临时变量而是成员变量,可得到整形默认初始值为0
在方法中定义的变量称为局部变量,局部变量必须赋值后使用
1字节(byte)=8比特位(bit)
1GB=1024MB=1024*1024KB=1024^3B(Byte)
一个bit就是一个二进制
在java中int型是4个字节即32bit,能表示范围最大2^32
正整形的最大值2^31-1(最高的位数表示符合)正数最高位0,负数最高位1
负整数最大值-2^31
在java中最大值Integer.MAX_VALUE 最小值Integer.MIN_VALUE
Integer可以看成整形的一个包装类
当整形最大值+1,此时会溢出,因此需要更换成更大数据类型为long
4.long 长整型 8字节 默认值为0
//定义一个长整型变量时,推荐在数字后加L或l
long c= 10L
5.float :单精度浮点数 4字节
//f或F都可以,但是不加会默认为double型
float a=1.0F
6.double 双精度浮点型 8字节
double a=1.1;
double b=1.1;
double c=a*b;
System.out.println(c);
如果需要精密计算不允许有数据丢失的时候使用该类(后面会详谈)
7.char: 字符型 2字节 可以表示所有语言(Unicode编码:可以存储世界上所有语言)
默认值是:\u0000,即就是一个空格符
使用’ ‘字符
char a='a';
char b='俊';
字符型可以与int互换(int型表示范围大)
8.boolean 布尔型 1字节
默认输出为false
true 表示真 false表示假 (与0\1没有关系)
boolean a = true;
boolean b = false;
2.引用数据类型
字符串 “ ” String 引用数据类型
String 类的使用:
String 变量名称 = " " ;
//声明一个字符串
String s = "hello world";
字符串与其他做拼接操作用符号+连接
int a = 10;
int b = 20;
String s = "计算在这里插入代码片结果为:"+(a+b);
String.out.println(s);
System.out.printfln("计算结果为:"+a+b);
二、命名规则
1.变量的命名
1.一个变量名只能包含数字,字母,下划线
2.数字不能开头
3.变量名是大小写敏感的。即num和Num是两个不同的变量
4.推荐小驼峰方式命名
当变量为一个单词时,全小写;若为多个单词,从第二个单词开始首字母大写
int num = 10;
int studentScore = 30;
此变量生效范围:看此变量定义的{}范围
2.类命名
大驼峰:从第一个单词开始首字母大写
Test
3.项目命名
全小写,多个单词通过下划线_分割
eg: java21_11.15
从开始规范我们的书写
三、常量
常量:声明后值不能改变的变量
final(终结器)关键字修饰的变量
public static void main(String[] args){
final int a =10;
//错误写法
a = 20;
}
因此,final修饰的变量必须在声明前赋值
常量命名:final
单词全部大写,多个单词下划线分隔_
Inter.MAX_VALUE
字面型常量:直接写出来的值
10(int)//十进制 10^0*0+10^1*1=10
010//八进制 8^0*0+8^1*1=8
0x10//十六进制 16
0b10//二进制 2
1.5e2//1.5*10^2
四、类型转换
数据类型转换:
①从小类型->大类型(涉及到运算的时候会自动提升类型)
②从大类型->小类型(强制类型转换,有丢失精度的风险)
1.特殊:byte (1字节)和 int (4字节) 的转换
①当将整形字面量赋值给byte时:若该值在byte的保存范围之内,可以直接赋值;否则编译出错,需要强转(无意义)。
②当进行byte变量之间的运算时,JVM内部会将byte提升为int进行运算。(因为会将小于4字节的都按4字节存储)
2.String和其他类型的转换问题
以int型为例
Web开发中,输入框拿到的数据默认全是String
①.将String 转换成int型:
利用integer这个类提供的parseInt函数转换
String str ="1234";
int a = integer.parseInt;
System.out.println(a+1);
把非纯数字字符串转int会报错
②.将int 转换成String型:
a.整形直接和字符串(" ")+
int a = 123;
String ret = " " + a'
字符串+任何类型
b.使用String.valueOf(int)
int a = 123;
String b = String.valueOf(a);
System.out.println(b+1);
五、运算符
1.算数运算符
唯一需要注意的是÷0运行时报错
2.关系运算符 < > >= <= !=
返回值boolean 类型 返回真还是假
3.逻辑运算符
返回值为boolean 类型
&& 同为真返回真 || 一个为真就返回真 都是短路运算符(可能只执行一部分)
!:!表达式a
4.位运算符 (在二进制情况下进行)
&:按位与
|:按位或
^:按位异或
~:按位取反 (取反得到的值:符号位取反*绝对值-1)
5.移位运算
<<左移 相当于*2
>>右移 相当于/2
>>>无符号右移
六、注释
Java中的注释主要分为以下三种
单行注释:// 注释内容(用的最多)
多行注释:/* 注释内容*/(不推荐)
文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可用来自动生成文档