1.标识符
花了三天把狂神的基础看完,好摆烂!!!
1.1关键字
1.2 Java的所有组成都需要名字
类名、变量名、方法名都被称为标识符
public class hello_world { //hello_world 为类名
public static void main(String[] args) { //main 为方法名
string s="sdasd";//s 为变量名
System.out.println("Hello World");
}
}
1.3 java可以对中文命名
string 王者荣耀="青铜";
2.数据类型
2.1两种基本java数据类型
java是一种强类型语言,所有变量必须先定义才能使用,更加安全。
//八大基本类型
//整数
int n1=1;
byte n2 =20;
short n3=30;
long n4=300L;//long型要这样表示加l
//小数:浮点数
float n5=50.1F;//float要在后面加F
double n6=301415926;
//字符
char c='A';
//string 字符串不是关键字,是一个类
String name="sdsds";
System.out.println(name);
//布尔值:是否
boolean flag=true;
//boolean flag=false;
2.2 字节与位
3 java的相应拓展
3.1 整数拓展–二 八 十六进制表示
//整数拓展:进制转换 二进制0b 十进制 八进制0 十六进制0x
int i1=10;
int i2=010;//001 000 八进制
int i3=0x10;//0001 0000 十六进制
3.2 浮点数拓展
//浮点数的拓展
//flaot与double 表现字长是有限的,离散的。存在舍入误差 ,结果知识大约数。**进行比较不用浮点数**
//少去用浮点数比较
//BigDecmal数学工具类。
3.3 字符与字符串拓展
//字符的拓展
char c1='a';
char c2='是';
System.out.println(c1);
System.out.println(c2);
//将其转换成数字,强制转换
System.out.println((int)c1);//输出为:97
System.out.println((int)c2);//输出为:26159
//所有的字符本质上还是数字
//编码 Unicode 占2个字节 0-65536
//Unicode 有一个编码表,表中有相应的数字为字符
char u3 ='\u0061';//也可以用转义字符表示
System.out.println(u3);//输出为a
3.4 常用转移字符
//转义字符
\t 制表符,相当于tab
\n 换行
3.5 布尔值拓展
//布尔值扩展
boolean flag1=true;
if (falg1==true){}
if (falg1){}//与上面一行一个意思
//Less is More 代码精简易读
4.类型转换
//强制转换 由高-->低
int i=128;
byte b=(byte)i;//byte类型最高是-128-127。会存在内存溢出
//自动转换 由低-->高
int a1=124;
double a2=a1;//由低-->高
System.out.println(a2);//输出为124.0
char cc='a';
int dd=cc+1;//由低-->高
System.out.println(dd);//输出为98
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.高容量到低容量属于强制转换
4.转换的时候存在内存溢出,或者精度问题。
*/
5.操作大数值分割 与 数值转换存在的其它问题
//操作比较大时注意 溢出问题
//JDK7新特性,数字之间可以用下滑线分割,下划线不会输出
int money=1_0000_0000;
System.out.println(money);//输出:100000000
//数值转换存在的其它问题
int year=20;
int total=year*money;//溢出了
long total2 =year*money;//也会溢出。year*money 先计算完之后,才转换为long类型。转换之前已经存在问题
long total3=money*((long)year);//正确方法:把其中一个转化为long,或者连个都转换为long
6.变量与常量
6.1 变量
//变量作用域:类变量、实例变量、局部变量
class Demo02 {
//类变量:加static;
static double salay=2500;
//属性:变量
//实例变量:从属于对面,也就是从属于类。实例变量在类的里面方法的外面。
//实例变量如果不自行初始化,默认为0。布尔值默认为false。除了基本类型其余都是null。
String name;
int age;
//main方法
public static void main(String[] args) {
//类变量的引用
System.out.println(salay);
//实例变量的调用
//变量类型 变量名字 = new Demo02();
Demo02 demo02 = new Demo02();//alt + 回车+回车
System.out.println(demo02.age);
System.out.println(demo02.name);
//局部变量在方法里,使用之前必须生命与初始化
int i=10;//i属于局部变量
System.out.println(i);
}
//其他方法
public void add(){
}
}
6.2常量
6.3命名规则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5uRMOaO-1681128775964)(D:\桌面\Markdown\变量的命名规范.png)]
7.运算符知识
7.1 运算符优先级
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | () |
2 | 正负号 | +,- |
3 | 一元运算符 | ++,–,! |
4 | 乘除 | *,/,% |
5 | 加减 | +,- |
6 | 移位运算 | >>,>>>,<< |
7 | 比较大小 | <,>,>=,<= |
8 | 比较是否相等 | ==,!= |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ?: |
15 | 赋值运算符 | = |
7.2 packet-operater(运算)小知识
7.2.1 Demo01-ctrl+d复制当前行到下一行
7.2.2 Demo02- 如果有long 、double就是long、double类型。其它的都是int 类型
package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 1313131313L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//输出为long类型
System.out.println(b+c+d);//输出为Int类型
System.out.println(c+d);//输出为Int类型
//结论:如果有long 、double就是long、double类型。其它的都是int 类型
}
}
7.2.3 Demo3-*关系运算符返回值:正确或者错误。true false
7.2.4 Demo4- 自增++、自减-- 与幂运算符
package operator;
//自增++ 自减--
public class Demo04 {
public static void main(String[] args) {
int a=5;
int b=a++;
int c=++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2^3。可以使用Math数学类.很多运算可以使用工具类
double p = Math.pow(2,3);
System.out.println(p);//输出为8
}
}
7.2.5 Demo05-逻辑运算符
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符
boolean a=true;
boolean b=false;
System.out.println(" a && b:"+(a&&b));//输出为 a && b:false
System.out.println(" a || b:"+(a||b));//输出为 a || b:true
System.out.println(" !(a && b):"+ !(a||b));//输出为 !(a && b):false
}
}
7.2.6 Demo06-位运算符
package operator;
public class Demo06 {
public static void main(String[] args) {
/*位运算的效率高
A=0011 1100
B=0000 1101
--------------------------
A&B=0000 1100
A|B=0011 1101
A^B=0011 1101 异或
~B= 1111 0010 非B
<<左移 >>右移
*/
System.out.println(2<<3);// 0000 0010 2左移三位。左移一位乘以2
System.out.println(16>>3);// 0001 0000 16右移三位。右移一位除以2
}
}
7.2.7 Demo07-字符串连接与三元运算符
package operator;
public class Demo07 {
public static void main(String[] args) {
//字符串连接符 +
int a=10;
int b=20;
System.out.println(a+b);
System.out.println(""+a+b);//只要在加号前出现string字符串类型,都会转换成string连接
System.out.println(a+b+"");//前面先运算,然后转换成string
//x?y y:z三元运算符
int score =80;
String t=score<60 ? "不及格":"及格";
System.out.println(t);
}
}
8.包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
-
包机制的本职就是文件夹
-
一般用公司的域名倒置作为包名 www.baidu.com 倒置为:com.baidu.www
-
导入包要用import
//包机制 //包机制的本职就是文件夹 package com.lu.operator;//packet必须在最上面 import com.lu.Base.Demo01;//导入这个包的一个类 import com.lu.*;//导入这个包下所有的类
9.JavaDoc
javaDoc我这个没有认真学,等用到在补充