Java基础语法
- 注释:书写注释是一个非常好的习惯,平时写代码一定要规范
- 单行注释://
- 多行注释:/* */
- 文档注释JavaDoc:/** */
- 标识符
- 不能使用关键字作为变量名和方法名
- 标识符大小写敏感
- 首字母以字母、_以及$开头
- 可以使用中文名,但是不建议,也不建议使用拼音,很low
数据类型
-
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才可以使用
-
弱类型语言
-
基本类型:数值类型(整数类型、浮点类型、字符类型)以及boolean类型
public class Demo02 { public static void main(String[] args) { String a="wanglong"; //String字符串 System.out.println(a); //八大基本数据类型 //整数 int num1=10; byte num2=20;//最大127 short num3=30; long num4=40L;//long类型要在数字后面加个L //小数:浮点数 float num5=40.1F;//float类型要在数字后面加个F double num6=3.1415926; //字符 char name='A'; //字符串,String不是关键字,是一个类 String name2="wanglong"; //boolean布尔值:是非 boolean flag=true; } }
public class Demo03 { public static void main(String[] args) { //整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i=10; int i2=010;//八进制0 int i3=0x10;//十六进制0x 0~9 A~F System.out.println(i);//10 System.out.println(i2);//8 System.out.println(i3);//16 //浮点数扩展 //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全 避免 使用浮点数进行比较 float f=0.1F;//0.1 double d=1.0/10;//0.1 System.out.println(f==d);//false System.out.println(f); System.out.println(d); float d1=212121212121212F; float d2=d1+1; System.out.println(d1==d2);//true //字符扩展 char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1);//强制转换 //所有的字符本质还是数字 //编码 Unicode 2字节 65536 //转义字符 // \t制表符 \n换行 、、、 //布尔值扩展 boolean flag=true; } }
-
引用类型:类、接口、数组
-
类型转换
从低到高
byte,short,char---->int--->long--->float--->double(小数优先级高于整数)
要避免内存溢出
强制转换: (类型)变量名 高到低
自动转换: 低到高
注意点:
- 不能对布尔值转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换。
- 转换的时候可能存在内存溢出,或者精度问题
public class Demo04 {
public static void main(String[] args) {
//操作比较大的数,需要注意溢出问题
//JDK7的新特性,数字间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算的时候溢出了;
long total2=money*years;//默认是int,转换之前已经存在问题了
long total3=money*((long)years);//先把一个数转换为long
System.out.println(total);
}
}
变量
一行定义一个,程序可读性。
变量作用域:
public class Demo05 {
static int a=0; //类变量 前面要加一个static
String str="hello world!";//实例变量:类里面,方法的外面,从属于对象;如果不自行初始化,就会有默认值,布尔值默认false,除了基本类型其余都是null
public void method(){
int i=0;//局部变量,必须声明和初始化值
}
}
常量:
-
final 常量名=值;
-
final double PI=3.14;
-
常量名一般使用大写字符。
public class Demo06 {
//修饰符,不区分前后
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规范:
- 见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:GoodMan
- 方法名:首字母小写和驼峰原则: runRun()
运算符
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//Ctrl+D :复制当前行到下一行
int a=10;
int b=20;
int c=30;
int d=40;
System.out.println(a+b);
System.out.println(a/(double)b);
//幂运算
double pow = Math.pow(2,3);
System.out.println(pow);
//字符串连接符 + ,String
System.out.println(""+a+b);//1020 前面有“”整个当作一个字符串
System.out.println(a+b+"");//30
System.out.println(""+(a+b));//30
}
}
包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间。如同文件夹一样
一般利用公司域名倒置作为包名;com.wang.long com.baidu.www
为了使用某一个包的成员,我们需要在java程序中明确导入该包。使用 import 语句即可
package com.wang.operator;
import java.util.Date;
import com.wang.base.*;//导入这个包下所有的类,*为通配符
多看看《阿里巴巴开发手册》:无规矩不成方圆,无规范不能协作
JavaDoc
Javadoc命令用来生成自己的API文档
参数信息:
- @auther 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package com.wang.base;
/**
* @author wanglong
* @version 1.0
* since 1.8
*/
public class Doc {
String name;
/**
* @auther wanglong
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
- 使用命令行生成文档
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
点击index.html文件即可
- 使用IDEA生成文档
- tools---->GenerateJavaDoc
- -encoding UTF-8 -charset UTF-8