零基础入门学习Java课堂笔记 ——day01
Java语法
1.注释、标识符、关键字
注释
不会被程序执行的代码或者块
//双斜杠表示单行注释
/*表示多行注释*/
标识符、关键字
关键词系统事先定义好的,我们能直接拿来用的,不能作为变量名使用
-
所有的标识符只能以字母、美元符号、下划线开始
-
首字母后可以以字母、美元符号、下划线或者数字组合
-
不能使用关键字作为标识符,标识符区分大小写
-
可以使用中文作为标识符(不推荐)
2.数据类型
Java是一门强类型语言:要求变量的使用严格符合规定,所有话能量要先定义后才能使用
Java两大数据类型
- 基本数据类型
- 引用数据类型
public class Demo{
public static void main(String[] args){
//基本数据类型的表示
int num1 = 10; //最常用的int
byte num2 = 20; //字节类型
short num3 = 30; //短整数类型
long num4 = 60L; //长整数类型 末尾L表示
float num5 = 50.1F //浮点数float后面+f
double num6 = 3.1415926535//浮点数类型
char word = 'H' //char类型表示一个字符 一个!
boolean t = true; //true or flase
}
}
3.基本类型拓展
public class demo{
public static void main(String[] args){
//整数
int i_10 = 10; //表示十进制数的10
int i_8 = 010; //表示八进制数的10
int i_16 = 0x10 //表示是十六进制数的10
//字符 字符本质还是数字 (int)可以强制转换为其对应的数字,其数字是对于的ASCLL码
char a = 'n';
char b = '你';
System.out.println(a);
System.out.println((int)a);
System.out.println(b);
System.out.println((int)b);
//布尔值
boolean flag = true;
if(flag){} = if(flag == true){}
}
}
4.类型转换
在Java运算中,不同类型的数据要先转化为同一数据类型,然后就行运算
原则上转换规则如下:
- 强制类型转换(高到低)
- 自动类型转换(低到高)
public class demo{
public static void main(String[] args){
int i = 128;
byte b = (int)i; //强制类型转换 内存溢出
System.out.println(b); //-1
}
}
注意点
1.不能对boolean类型转换
2.不能把对象类型转换为不相干的类型
3.转换会造成精度损失
拓展:数字之间可以用下划线分割
int money = 100_0000_0000;
5.变量
数据类型 变量名 = 值;
type varName [=value] [{,varName[=value]}];
变量作用域
-
类变量
被static修饰 可以在其他方法内部直接使用
-
实例变量
与类绑定,调用前必须先new类的对象
-
局部变量
在方法内部定义,仅限于方法内部使用
public class Demo{
//类变量 static
static double salary = 2500.0;
//属性:实例变量 不初始化会编程默认值
//所有数值都是0或0.0 bool默认是false
//除了基本类型都是NULL
int i = 10;
public static void main(String[] args){
System.out.println(salary);
int i = 10; //属性:局部变量
}
//其他方法
public void other(){
Demo d = new Demo();//使用实例对象
System.out.println(d.i);
}
}
常量
一旦被定义就不能被改变的称之为常量,常量必须初始化!
final PI = 3.1415926; //常量一般使用大写字母表示
6.基本运算符 operator
public class demo{
public static void main(String[] args){
int a = 10; //赋值运算符
int b = 20;
System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/(double)b); //0.5
System.out.println(a%b); //0
System.out.println(a<b); //true
System.out.println(a>b); //false
System.out.println(a==b); //false
System.out.println(a!=b); //true
int c = a++;
int d = ++a;
System.out.println(c); //10
System.out.println(d); //12
System.out.println(a); //12
//拓展:幂运算
double pow = Math.pow(2,3)//2*2*2;
System.out.println(pow); //8
}
}
如果运算过程中有long类型的话那么结果都为long反之所有结果都为int
(cast 转换)
逻辑运算符
-
与(and) &&
两个运算符都为真时返回真 【运算符相乘】
-
或(or) ||
两个运算符其中一个为真返回真【运算符相加】
-
非(nor) !
单个运算符取相反的结果【运算符取反】
public class demo{
public static void main(String[] args){
int a = true;
int b = false;
System.out.println(a&&b);//false
System.out.println(a||b);//true
System.out.println(!a);//false
}
}
短路运算
与运算时如果第一个操作数为假那么直接返回假 不会计算第二操作数
或运算时如果第一个操作数为真那么直接返回真 不会计算第二操作数
public class demo{
public static void main(String[] args){
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5
boolean d = (c>4)||(c++<4);
System.out.println(d);//true
System.out.println(c);//5
}
}
位运算
&:位相乘结果
|:位相加结果
^:位是否相同 相同得1 反之得0
~:是1得0 是0得1
<<、>>:左移、右移运算符
public class demo{
public static void main(String[] args){
/*
0000 0000 0
0000 0001 2 2<<0
0000 0010 4 2<<1
0000 0100 8 2<<2
0000 1000 16 2<<3
*/
System.out.println(2<<0);//0
System.out.println(2<<3);
}
}
效率高!!!!
条件运算符
x ? y : z
如果x为真返回y反之返回z
public class demo{
public static void main(String[] args){
int y = 10;
int z = 20;
int x = (y==10)?y:z;
System.out.println(x); //10
}
}
运算符优先级
7.包机制
-
类===>文件
-
包===>文件夹
一般包以公司域名导致规则
例如:www.baidu.com 倒置后 com.baidu.www
在IDEA创建包时可以输入com.baidu.www会自动创建各个层级包
在Java代码中可以使用package来关联包名
package com.baidu.www; //导入本类包
import java.util.Data; //导入外类包
package必须在import上面
8. Java Doc
/**
* @Description 这是文档注释
* @Author StarVik
*/
在控制台编译Doc注释信息为一个文档
javadoc -encoding UTF-8 charset UTF-8 demo.java