Java基础语法
注释、标识、关键字
注释
注释并不会被执行,是给写代码的人看的
Java的注释有三种:
- 单行注释
- 多行注释
- 文档注释
标识符
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | go to | if | implements | import |
instance of | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
类名、变量名、方法名
- 所有的标识符都应该以字母、美元符 或者 下划线 开始
- 首字符之后可以是字母、美元符、下划线 或者 数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 可以使用中文命名
数据类型
强类型语言
要求变量的使用要严格符合规定(安全性高)
弱类型语言
变量的使用可以不符合规定(运行速度快)
Java的数据类型分为两大类
-
基本类型
- 数值类型
- 整数类型
- byte占1个字节范围:-128~127
- short占2个字节范围:-32768~32767
- int占4个字节范围:-2147483648~2147483647
- long占8个字节范围:-9223372036854775808~9223372036854775807
- 浮点类型
- float占4个字节
- double占8个字节
- 字符类型
- char占2个字节
- 整数类型
- boolean类型:占1位其值只有true和false两个
- 数值类型
-
引用类型
- 类
- 接口
- 数组
public class Demo01 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//Long类型要在数字后面加个L
//整数拓展//二进制0b开头
int i1 = 10;//十进制
int i2 = 010;//八进制0开头
int i3 = 0x10;//十六进制0x开头
System.out.println("===========================================================================");
//小数
float num5 = 5.0F;//float类型要在数字后面加个F
double num6 = 3.1415926535897932384626433832795;
//浮点数拓展 float 有限 离散 舍入误差 大约 接近但不等于
float d1 = 0.1f;
double d2 = 1.0 / 10;
System.out.println(d1 == d2);//false
float f1 = 2333333333333333333f;
float f2 = 2333333333333333333f + 1;
System.out.println(f1 == f2);//true
//最好不要用浮点数进行比较
//银行业务怎么标识?钱?
//BigDecimal 数学工具类
System.out.println("===========================================================================");
//字符
char name1 = 'A';
//字符拓展
char c1 = 'a';
char c2 = '虑';
System.out.println(c1);
System.out.println((int) c1);//强制转换
System.out.println(c2);
System.out.println((int) c2);//强制转换
//所有的字符本质上还是数字 都有Unicode编码 0-65536
char c3 = '\u0061';
System.out.println(c3);
//转义字符
// \t 制表符(空格)
// \n 换行
System.out.println("Hello\tWorld!");
System.out.println("Hello\nWorld!");
System.out.println("===========================================================================");
//字符串,String不是关键字,类
String name2 = "东方语虑";
//字符串拓展
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa == sb);//false 内存地址不同
String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc == sd);//true
//对象 从内存分析
System.out.println("===========================================================================");
//布尔值:是非
boolean name3 = true;
//boolean name3=false;
//布尔值拓展
Boolean flag = true;
if (flag == true) {}//新手
if (flag) {}//老手
//Less is More! 代码要精简易读
}
}
- 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机 数据处理 的基本单位,习惯上用大写B来表示
- 1B=8bit;1KB=1024B;1M=1024KB;1G=1024M;1TB=1024G
- 字符:是指计算机中使用的字母、数字、字和符号
类型转换
低-------------------------------------------------------------------->高
byte,short,char----->int----->long----->float----->double
运算中,不同类型的数据先转化为同一类型,然后进行运算
- 强制类型转换 (类型)变量名 高----->低
- 自动类型转换 低----->高
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
转换的时候可能存在内存溢出或者精度问题
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
变量、常量
变量就是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基础的存储单位,其要素包括变量名、变量类型和作用域
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量
- 实例变量:从属于对象
- 局部变量:必须声明和初始化值,只在方法里有用
public class Demo02{
//类变量static
static double salary=25000;
//实例变量:从属于对象;如果不进行初始化,会变成这个类型的默认值
//默认值:0;0.0;布尔值默认是false;除了基本类型其他的都是null
String name;
int age;
//main方法
public static void main(String[] args){
//局部变量;必须声明和初始化值
int i=10;
System.out.println(i);
//实例变量 变量类型 变量名字=new Demo02()
Demo02 demo02 = new Demo02();
System.out.println(demo02.name);
System.out.println(demo02.age);
//类变量static
System.out.println(salary);
}
}
常量:初始化之后不能再改变值
常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=值
final double PI=3.14
常量名一般用大写字符
修饰符不存在先后顺序(static final double PI=3.14;final static double PI=3.14)
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则(除了第一个单词外,后面的单词首字母大写):monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
运算符
- 算数运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=instanceof(不等于)
- 逻辑运算符:&&,||,! (与或非)
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?,:
- 扩展赋值运算符:+=,-=,*=,/=
public class Demo03 {
public static void main(String[] args) {
//二元运算
//Ctrl+D复制当前行到下一行
int a = 10;
int b = 15;
int c = 20;
int d = 25;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / (double) b);//a,b都为int类型,输出也会是int类型,需强制转换
long A = 123123123123123123123;
int B = 123;
short C = 12;
byte D = 1;
System.out.println(A + B + C + D);//Long 有Long类型输出为long类型
System.out.println(B + C + D);//Int 无Long类型默认为Int类型
System.out.println(C + D);//Int 有double类型输出为double类型
//关系运算符返回的结果:布尔值 正确,错误
System.out.println(a > b);//false
System.out.println(a < b);//ture
System.out.println(a == b);//false
System.out.println(a != b);//ture
//模运算% 取余
System.out.println(c % a);//5
System.out.println(d % a);//5
//++ 自增 -- 自减 一元运算符
int e = a++;//执行完这行代码后,先给e赋值,再自增
//e=a=5;a=a+1=6
System.out.println(a);//6
System.out.println(b);//5
//a=a+1=7;f=a=7
int f = ++a;//执行完这行代码前,先自增,再给f赋值
System.out.println(a);//7
System.out.println(c);//7
//幂运算 2^3 很多运算我们会用到一些工具类来操作
double pow = Math.pow(2, 3);//8
System.out.println(pow);
//逻辑运算符 与 或 非
boolean m = true;
boolean n = false;
System.out.println("m && n:" + (m && n));//逻辑与运算:两个变量都为真,结果才为真
System.out.println("m || n:" + (m || n));//逻辑或运算:两个有一个为真,结果才为真
System.out.println("!(m && n):" + (!m && n));//如果是真则变为假,如果是假则变为真
//短路运算
int p = 5
boolean q = (p < 4) && (p++ < 4);//检测到 或 前有false,则 或 后面不执行
System.out.println(q);//false
System.out.println(p);//5
//位运算 二进制 效率高
/*
E=0011 1100
F=0000 1101
E&F //0000 1100 对应位都是1,结果才为1
E|F //0011 1101 对应位都是0,结果才为0
E^F //0011 0001 对应位相同,结果才为0
~F //1111 0010 取反
2*8怎么运算最快 2*2*2*2
<< 左移 >> 右移
*/
System.out.println(2 << 3);
/*
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
//扩展运算符
int M = 10;
int N = 20;
M += N;//M=M+N
System.out.println(M);//30
M -= N;//M=M-N
System.out.println(M);//10
//字符串连接符 + 运算前出现String类型,则后方操作数都会转换成String类型,再进行连接
System.out.println("" + a + b);//1020
System.out.println(a + b + "");//30
//三元运算符
//x ? y :z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
//if
System.out.println(type);
}
}
包机制、JavaDoc
包机制:为了更好地组织类,区别类名的命名空间
包语句的语法格式为:package pkg1[. pkg2[. pkg3...]];
一般利用公司域名倒置作为包名:com.bilibili.www
导入包以使用该包:import package1[.package2...].(classname|*);
导入某个包下所有的类:import package.*;
《阿里巴巴开发手册》:规范
JavaDoc参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
生成JavaDoc文档:java.doc -encoding UTF-8 -charset UTF-8 Demo04.java
标签:Java,变量,int,System,Day04,语法,类型,println,out From: https://www.cnblogs.com/dongfangyulv/p/18403107