Java基础语法
注释
//单行注释
public class student{
/*
多行注释也叫代码块注释,使用/**/
*/
/**
文档注释
*/
public static void mian(String[] args){
}
}
标识符和关键字
标识符
java中所有的组成部分都需要名字,类名、变量名以及方法名都被称为标识符。
-
那么标识符是怎么样命名的呢?或者说标识符的命名规范是怎样的呢?
-
所有的标识符都应该以字母(A-Z或者a-z),$(美元符),_(下划线)中的任意一个作为首字符
-
首字符之后的可以是字母(A-Z或者a-z),$(美元符),_(下划线)或者是数字(0~9)的任何字符的组合
-
不能用关键字作为变量名和方法名
-
标识符大小敏感(就是说如Studnet和student是两个标识符)
-
当然也可以用中文命名,但一般不建议这样去使用,也不建议使用拼音去命名,这样有点low
//举例一些合法的标识符如:Stars,$abc12,_one //不合法的标识符如:5wang,&wang,A#yuan /* 举例一些如用中文作为标识符的例子 */ public class Dog{ public static void main(String[] args){ String 名字="旺财"; System.out.printf(名字); } }
-
关键字
一些常见的关键字一般都会用到在学习的过程中
abstrcat | assert | break | byte |
---|---|---|---|
case | catch | class | const |
continue | default | double | else |
enum | extends | finally | float |
for | goto | implements | import |
instanceof | int | long | native |
new | package | protected | public |
return | strictfp | static | super |
switch | sysnchronized | throw | throws |
transient | try | volatile | while |
数据类型
强数据类型语言
Java就是强数据类型语言,所有的变量都必须先定义才能使用;
基本数据类型
java有八大基本的数据类型
-
整数类型(四种)
- byte 1字节
- short 2字节
- int 4字节
- long 8字节
-
浮点类型(两种)
- float 4字节
- double 8字节
-
字符 char 2字节
-
布尔类型 boolean 只占一位其值true和false。
public class Dome01 { public static void main(String[] args) { //八大基本数据类型 //byte 1字节 byte e=12; //short类型 short e2=251; //int 类型 int e3=90; //long 类型 一般数字后面加一个L区分 long e4=90L; //float 类型 float e5=5.3一般默认是double类型所有用F来区分 float e5=5.3F; //double 类型 double e6=3.1415926; //char 字符型 2字节 char e7='中'; //布尔类型 true和false 只占一位 boolean e8=true; //String类型也是字符串类型,它不是基本类型 String str="wang"; } }
引用类型
- 类(String)
- 接口
- 数组
什么是字节
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
1 B= 8 bit;即一个字节等于八位
字符:是指计算机使用的字母,数字,字和符号。
- 1 bit 表示一位
- 1 Byte 表示一个字节
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
类型转换
由于java是强类型语言,所以要进行有些运算的时候时,需要用到类型转换
低----------------------------------->高
byte,short,char->int->long->float->double
运算中,不同类型的数据要先转化成同一类型,然后进行运算。
强制类型转换(把容量大的转换为容量小的类型)
- 高精度转换低精度要注意内存溢出的情况
//类型转换,强制类型转换 格式:(type)value type是要强制类型转换后的数据类型。
//由于byte的值是-128~127,
// 如果将int的值强制转换为byte类型时要注意内存溢出的情况
int i=128;
byte b=(byte)i;
System.out.println(b);//-128
System.out.println(i);//128
-
将浮点类型转换为int类型时会有精度的缺失,a=23,f1==a 返回的是false
float f1=23.5F; int a=(int)f1; System.out.println(f1==a);
-
上面说了浮点数转换为整数类型会有精度缺失的情况, 那么double类型转换为float类型呢? 可以看到的是浮点类型在最好完全使用同一种浮点数进行比较 这是因为两种不同的浮点类型进行比较的时候double会自动转换为float 转换是含有误差,是一种大约的结果
float f2=0.1F; double d1=0.1; double d2=1.0/10; System.out.println(f2==d1);//返回false System.out.println(d1==d2);//返回false //这也体现了浮点数在计算的时候,是一种大约的,所以银行使用BigDecimal float f3=2333333333333F; float f4=f3+1; System.out.println(f3==f4);//返回的结果为true
-
//字符类型转换为整数类型,为什么a强制转换为整数97?
//这是因为字符是根据unicode编码来进行,每一个字符都可转换成一个整数有6536个
char c='a';
int i2=(int)c;
System.out.println(i2);//97
System.out.println(c==i2);//true
自动转换(从低精度转换成高精度)
//自动转换
int i4=38;
long l=i4;
System.out.println(l==i4);//true
//操作比较大的数的时候,注意溢出的问题
int money=1000000000;
int year=20;
int total=money*year;//计算的时候溢出了
System.out.println(total);//-1474836480
long total2=money*year;//自动转换,默认是以int类型计算,转换之前就存在问题
System.out.println(total2);//-1474836480,所以转换之后也是这个值
long total3=money*((long)year);//可以先将一个数转换为long
System.out.println(total3);//20000000000