Java基础(向B站狂神说Java学习)
Java 基础
注释
-
注释可以方便我们更好的读代码,必要的注释可以提高差错效率
-
注释有三种
//单行注释 /* 多行注释 */ /**文档注释 * */
标识符
类名,方法名以及变量名都可以叫做标识符
命名有规则,不可以乱命名,一些特殊符号如& % 等不可以出现。一般由大小写字母,数字_和$组成可以,但是数字不可以放在开头。
数据类型
基本数据类型
byte 1b
short 2b
int 4b
long 8b 100L(末尾加L)
char 2b
float 4b 1.0F(末尾加F)
double 8b
boolean 1bit
引用数据类型
类
接口
数组
数据类型扩展
//=======整数=======
int a1 = 10; //十进制
int a2 = 0b10;//二进制
int a3 = 010; //八进制
int a4 = 0x10;//十六进制
//=======浮点数=======
float b1 = 0.1f;
double b2 = 1.0 / 10;
System.out.println(b1 == b2);//false
double b3 = 0.1;
System.out.println(b1 == b3);//false
double b4 = 123123123;
double b5 = b4 + 1;
System.out.println(b4 == b5);//但是有时候会相等
//不要完全使用浮点数
//=======字符=======
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);//97
System.out.println((int)c2);//20013
char c3 = '\u0061';//代表了a在unicode码的编号
System.out.println(c3);//a
//=======转义字符=======
//不全
类型转换
低-------------------------------------------->高
byte,short,char->int->long->float->double
-
强制类型转化:高到低
-
自动类型转化:低到高
public class Day2 { public static void main(String[] args) { int a = 128; byte b = (byte)a;//内存溢出 System.out.println(a); System.out.println(b);//byte 有符号类型 -128 -> 127 int c = 123; double d = c;//自动类型转化 低到高 System.out.println(c); System.out.println(d); //=====注意===== /* 1. 低到高自动类型转化,高到低强制类型转化 2. 转化过程注意内存溢出和精度丢失 3. 不可以对布尔类型进行转化(boolean) */ //扩展 int e = 10_0000_0000; //可以用下滑线表示,易读jdk7 add int g = 20; System.out.println(e*g); long f = (long)e*g; long h = e*g;//自动转化 System.out.println(f);//20000000000 System.out.println(h);//-1474836480 //h:e,g先相乘,但还是int,在转化前就已经溢出了 //f:e先转化为long,再相乘,得到的是long } }
变量.常量.作用域
- 变量
//数据类型 数据名 值
变量要具有可读形,方便阅读
-
变量作用域
根据作用域的不同:
类变量 实例变量 局部变量
public class Day3 { //常量 修饰符不分前后的,变量前的都叫修饰词(现在我这么认为) static final double PI = 3.14; //类变量 可以直接用,可以不用初始化,有点像c语言的全局变量,不用像实例一样麻烦 static double age; //实例变量 可以不用初始化,会自己赋初始值:基本变量为0,其他为NULL //面向对象 布尔值默认为false int name; public static void main(String[] args) { int a = 1; System.out.println(a); Day3 day3 = new Day3();//将Day3这样写才可以用里面的值 System.out.println(day3.name); System.out.println(age); } public void add()//应该是不可以乱取的 { // System.out.println(a);//不可以识别a error Day3 day3 = new Day3(); } }
-
命名规则
所有方法,变量见名知意
类变量:首字母小写驼峰 monthSalary
局部变量:首字母小写驼峰 monthSalary
方法名:首字母小写驼峰 monthSalary
类名:首字母大写驼峰 MonthSalary
常量:大写字母加下划线 MAX_VALUE
运算符
package Basic_of_Java;
public class Day4 {
public static void main(String[] args) {
//算数运算符
//Crtl+D 可以是当前所在的行复制到下一行
int a = 10;
int b = 20;
int c = 21;
System.out.println(a+b);
System.out.println(a*b);
System.out.println(a-b);
System.out.println(a/(double)b);
System.out.println(c%b);
//赋值运算符
System.out.println("----------");
int a1 = 10;
int a2 = 20;
System.out.println(a1);
a1 = a2;
System.out.println(a1);
//关系运算符 返回布尔值boolean
int b1 = 13;
int b2 = 14;
System.out.println("----------");
System.out.println(b1 > b2);
System.out.println(b1 < b2);
System.out.println(b1 >= b2);
System.out.println(b1 <= b2);
System.out.println(b1 == b2);
System.out.println(b1 != b2);
//还有instance of
//自动转化 低向高
byte c1 = 10;
short c2 = 125;
int c3 = 1234;
long c4 = 12345678;
double c5 = 0.1;
System.out.println("----------");
System.out.println(c1+c2+c3);
System.out.println(c4+c5);//小数+整数->科学计数法表示
System.out.println(c2+c5);//太长才会
}
}
package Basic_of_Java;
public class Day5 {
public static void main(String[] args) {
//自增++ 自减--
int a = 2;
int b = a++;
//a = a + 1 先赋值再自增
System.out.println(b);
System.out.println(a);
//a = a + 1 先自增再赋值
int c = ++a;
System.out.println(c);
System.out.println(a);
//Math 运用
//Math.pow 类型是 double double -> int 需要强制转化(高到低)
double d = Math.pow(2,3);
System.out.println(d);
}
}
package Basic_of_Java;
public class Day6 {
public static void main(String[] args) {
//逻辑与&& 逻辑或|| 逻辑非!
boolean a = true;
boolean b = false;
//字符串+执行语句 实现拼接
System.out.println("a && b :"+(a && b));//&& 只能用于布尔值
System.out.println("a || b :"+(a || b));//&& 只能用于布尔值
System.out.println("!(a && b) :"+!(a && b));//&& 只能用于布尔值
//短路与,短路或
int c1 = 2;
boolean a1 = (c1 < 4) && ((c1++) < 4);
System.out.println("----------");
System.out.println(a1);
System.out.println(c1);//3
int c2 = 5;
boolean a2 = (c2 < 4) && ((c2++) < 4);
System.out.println("----------");
System.out.println(a1);
System.out.println(c2);//5
//总结:当与运算在第一个就遇到false时候不会在在执行&&后面的,叫做短路运算
//位运算
/*
A 0011 0101
B 1110 0001
------------
A & B 0010 0001
A | B 1111 0101
A ^ B 1101 0100 //相同取0 不同取1
~B 0001 1110
------------
>> *2 << /2
面试题
2*8 高效运算 运用底层算更快
2*(2<<2)
*/
}
}
package Basic_of_Java;
public class Day7 {
public static void main(String[] args) {
//字符链接符 +
int a = 16;
int b = 14;
//string在后面,a+b先运算再转化成字符串后拼接
System.out.println(a+b+"");
//string在前面,全部转化成字符串后直接拼接:""+16 = "16"+14= "1614"
System.out.println(""+a+b);
//条件运算符
//x?y:z x是否为true,是返回y,不是返回z
int core = 50;
String isPass = (core > 60)? "及格":"不及格";
System.out.println("----------");
System.out.println(isPass);
}
}
包机制
package com.Adomi.www (举例)
一般为公司域名的倒置
import -------- 导入包(类似c语言的头文件)
要导入的包太多,可以使用通配符*
import com.*;
JavaDoc
package com.Adomi.basic;
/**
* @author Adomi
* @version 1.0
* @since 1.8
*/
public class Doc {
/**
* @author Adomi
* @param name
* @return
*/
public String test(String name) {
return name;
}
}
与注释的区别:可以生成树,html网页
通过命令行 javadoc -encoding UTF-8 -charset UTF-8 Doc.java
javaDoc (参数) java文件名
看开发文档
笔记来源于此视频:狂神说Java