无规矩不成方圆
必须按规范来写代码
运行java文件
第一个Java文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIo5rALc-1649676833506)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411102625751.png)]
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}
-
java区分大小写
-
尽量使用英文输入输出
-
文件名和类名必须保持一致
-
符号使用英文
-
括号成对出现
新建类和包
- 新建类 New class
- 新建包 New Package
语法
-
标识符字母/下划线/美元符号 开通
-
严格区分大小写
-
//基本类型 long num3=20L;//long类型后面加L用来和short/int区分 float num4=50.1F//后加F //double不用加F //String不是关键字,是类 boolean flag=false; //引用类型 类,接口,数组//除了基本都是引用
-
进制
- 二进制0b
- 十进制
- 八进制0
-
浮点数
- 离散 有限 舍入误差 大约 接近但不等于
- 最好完全避免进行浮点数比较
-
BigDecimal //数学工具类(可以避免误差,用来比较)
-
字符串拓展
char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println((int)c2);//强制转换 //所有的字符本质还是数字 //编码 Unicode ASCLL表 2字节 65536 Excel 2^16=65536
-
转义字符
// \t 制表符 // \n 换行 ... ...
-
Less is More! 代码要精简易读
类型转换
-
类型优先级 低-----高
- byte<short<char<int<long<float<double //小数优先级一定大于整数
-
强制类型转换(高到低)
int i=128; byte b=(byte)i; //强制转换 (类型)变量名;
-
自动类型转换(低到高)
int i=128; double b=i;
-
不能对boolean转换
-
不能转换为不相关类型
-
高—>低强制转换
-
可能出现内存溢出或者精度损失
精度问题
-
操作比较大的数时,注意精度问题
-
JDK7新特性,数字之间可以用下划线分隔
int money=1_0000_0000; int years=20; System.out.println(money*years);//损失精度 System.out.println(money*(long)years); //long后面尽量用大写的L;小写l经常被看为1;
变量
-
类变量 实例变量 局部变量
public class Hello{ static int all=0; //类变量加static,作用域非常大 String str="Hello World!"; //实例变量,在类里面,方法的外面,从属于对象 public void method(){ int i=0; //局部变量(在方法中) } }
public class Demo08 { //类变量 static static double salary=2500;//类变量:工资; String name;//实例变量,如果不自行初始化,会设置为这个类型的默认值 0/ 0.0/ u0000字符串/false布尔值 //除了基本类型,其余默认值都是NULL; int age; public static void main(String[] args) { int i=10;//局部变量,必须声明和初始化值 System.out.println(i); //变量类型 变量名字=new Demo08(); Demo08 demo08=new Demo08();//引用实例变量的语句(比较麻烦) System.out.println(demo08.age); //直接可以调用类变量 static System.out.println(salary); } }
常量
-
常量时不能改变的变量;静态的常量,不会改变的;
-
final 常量名=值;
public class Domo09 { static final double PI=3.14; //final static double PI=3.14;修饰符不存在先后顺序 public static void main(String[] args) { System.out.println(PI); } }
变量规范(重点)
- 所有变量,方法,常量:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary(月工资) 除了第一个单词以外,后面单词首字母大写;
- lastName
- 局部变量:首字母小写+驼峰原则;
- 常量:全部大写和下划线:MAX_VALUE
- 类名:首字母大写+驼峰原则;
- 方法名:首字母小写+驼峰原则;
运算符(补充知识盲点)
instanceof
位运算符:&,|,^ , ~ , >> , << , >>>
条件运算符:?:
扩展赋值运算符:+= ,-=,*=,/=
位运算符
A = 0011 1100;
B = 0000 1101;
A&B = 0000 1100;//与运算
A|B = 0011 1101;//或运算
A^B = 00011 0001;//异或运算
~B = 1111 0010;//取反运算
2*8 = 16怎么运算最快:2*2*2*2//位运算效率高
>>右移 /2
<<左移 *2
System.out.println(2<<3);//左移三位即可
package operator;
public class Domo01 {
public static void main(String[] args) {
//二元运算符
//ctrl+d 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//得0.5,要强转成double
}
}
package operator;
public class Domo02 {
public static void main(String[] args) {
//casd意为转换
//运算有Long结果就是long,其余的结果都是int
//如果有一个数是double,结果就是double
long a=123124545676878;
int b=129;
short c=10;
byte d=4;
System.out.println(a+b+c+d);
System.out.println(b+c+d);
System.out.println(c+d);
}
}
比较运算符
package operator;
public class Domo03 {
public static void main(String[] args) {
//关系运算符返回结果:只有ture/false;bool
int a=10;
int b=20;
System.out.println(a==b);
System.out.println(a>b);
System.out.println(a!=b);
//取余,模运算
System.out.println(a%b);
}
}
幂运算
double pow = math.pow(3,2);//3^2运用工具类来操作
字符串的连接
package operator;
public class Domo04 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(""+a+b);/*输出为1020,因为在+两边如果出现字符串,
就会把另外的操作数转化为String进行连接*/
System.out.println(a+b+"");//结果为30,因为先运算a+b
}
}
三元运算符
x?y:z
//如果x==true 则结果为y,否则为z;
package operator;
public class Domo05 {
public static void main(String[] args) {
int score = 50;
String type = score<60?"不及格":"及格";//虽然可以用if,但是这个必须掌握!
System.out.println(type);
}
}
运算符的优先级,可以用()来区分,便于理解;
包机制
-
一般用公司域名倒置作为包名;www.baidu.com --------- com.baidu.www
-
定义包和导入包
package com.kong.base;//定义包 import com.kong.* //*是通配符,会导入该包下所有类 import java.util.Date;//导入包 public class Demo01 { public static void main(String[] args) { Date//按住Alt+回车自动生成错误信息并自动排错 } }
JavaDos
-
JavaDos命令是用来生产自己API文档的
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package com.kong.operator;
/** //输入/**然后回车自动生成Dos注释
* @author 孔德宝 //加在类上面就是类的注释,加在方法上面就是方法的注释
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;//是一个属性
/**
* @author 孔德宝
* @param name
* @return
* @throws Exception
*/
//是一个方法
public String test(String name)throws Exception{
return name;
}
}
查看自己的API文档
- 选择Open In/Explorer打开该类所在文件夹
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W0PGIZ7h-1649676833508)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411191741845.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKx3ac7E-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192002029.png)]
- 打开cmd命令行,输入javadoc -encoding UTF-8(防止代码里的中文乱码) -charset UTF-8(f防止字符串里的中文乱码) Doc.java(把java文件编译成一个文档供我们阅读)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6W03LNSX-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411191713237.png)]
在文件夹生产若干html文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bhqIRDct-1649676833509)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192255184.png)]
点击进入index.html(index是首页的意思)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zLwS9btG-1649676833510)(C:\Users\孔德宝\AppData\Roaming\Typora\typora-user-images\image-20220411192405124.png)]
//以上是通过命令行 javadoc 参数 Java文件
//作业:学会查找使用IDEA生成JavaDoc文档!
//学会面向百度编程!
//基础部分的一切知识以后每天都会用