1.注释,标识符,关键字
注释并不会被执行,书写注释是一个非常好的习惯,要注意规范。
Java中的注释有三种:
-
单行注释 //内容
-
多行注释 /* 内容 */
-
文档注释
/**
*参数:值
*/
标识符:Java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符。
标识符应该以字母,美元符号($),下划线(_)开始;
首字符之后可以是字母,美元符,下划线或数字任意组合;
不能使用关键字作为变量名或方法名;
标识符是大小写敏感的。
关键字:例如 abstract,Boolean,break,goto,interface等。
2.数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
比如:Java,C/C++等
弱类型语言:在编译后确定数据类型,没有明显的类型,能随着环境的不同 自动变换类型。
比如:VB,JS,PHP等
Java的数据类型分为两大类:
基本类型:八大基本类型
-
数值类型:
-
整数类型:byte占1个字节,short占2个字节,int占4个字节,long占8个字节
-
浮点数类型:float占4个字节,double占8个字节
-
字符类型:char占2个字节
-
-
boolean类型:占1位,值只有true和false两个。
1byte表示一个字节 即 1b=8位 (bit)
1024b=1kb 1024kb=1mb 1024mb=1gb 1024gb=1tb
整数拓展:
二进制0bNum 十进制Num 八进制0Num 十六进制0xNum
//二进制 2 int i1=0b10; //十进制 10 int i2=10; //八进制 9 int i3=011; //十六进制 25 int i4=0x19;
浮点数拓展:
银行业务的钱用什么类型表示?
BigDecimal 数学工具类
如果用float,double会造成精度丢失,最好完全避免使用浮点数比较。
字符拓展:
所有的字符本质还是数字
编码 Unicode 表:(a=97 A=65)占2字节,范围0-65535
char c1='A'; char c2='中'; System.out.println(c1);//输出 A System.out.println((int)c1);//强制转换 输出 65 System.out.println(c2);//输出 中 System.out.println((int)c2);//强制转换 输出 20013
转义字符:\t 制表符 \n 换行 \0 空字符(NULL)
boolean(布尔值)拓展:
boolean flag=ture; if(flag==true){} //两者作用相同,都表示如果flag值为true就执行{}中的内容。 if(flag){}
引用类型:类,接口,数组
3.类型转换
-
由于Java是强类型语言,所以在进行某些运行算时,需要用到类型转换。
范围从小到大为 :Byte——Short——Char——Int——Long——Float——Double
-
运算中不同类型的数据先转化为同一类型,然后再进行运算。
强制转换:
将大容量的类型转为小容量时,需要强制转换。有可能会造成数据失真或者精度缺失。
类型 变量名=(类型)变量
自动转换:
当小容量的变量与大容量做运算时,结果自动转换为大容量的数据类型。
int i=128; byte b=(byte)i;//内存溢出,数据失真 //强制转换 (类型)变量 大--小 short s=12; int is=s+55; //自动转换 小--大 System.out.println(i); System.out.println(b); System.out.println(is); //精度缺失 System.out.println((int)23.7);//23 System.out.println((int)-44.83F);//44 //操作比较大的数时,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000;//输出1000000000 int years=20; int total=money*years;//-1474836480,计算时结果溢出了 long total2=money*years;//-1474836480 默认是int,转换之前已经存在问题了 long total3=money*((long)years);//先把一个数转换为Long System.out.println(total); System.out.println(total2); System.out.println(total3);
注意点:
1.不能对布尔值进行转换 2.不能不对象类型转为不相干的类型 3.在把大容量转为小容量时需要强制转换 4.转换的时候可能存在 内存溢出,数据失真 或者 精度缺失 !
4.变量,常量
变量:
可以变化的量。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName = value [,varName2 = value2] ;
数据类型 变量名 赋值 值 ; 可以使用逗号隔开声明多个同类型变量。
//int a,b,c; int a=1,b=2,c=3;//不建议这样写,程序可读性差 String name ="wanCheng"; char x='X'; double d=56.11;
#注意:
每个变量都有类型,类型可以为基本类型,也可以为引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因为每一个声明都必须以分号结束。
常量:
初始化之后不能再改变值,不会变动的值。关键字 final
//修饰符不存在先后顺序 static final int WIDE=65;
变量作用域:
-
类变量:可以在类中直接调用,也可以在其它类中通过 类名.变量名 调用。生效范围所有Java类中!! 关键字 static
-
实例变量:从属于对象,如果不初始化,就会成为默认值。生效范围整个类中!!
-
局部变量:在方法或者语句块中的变量,必须声明和初始化值。生效范围方法{}内!!
public class Demo08 { //类变量 static static int salary=6666; //实例变量 从属于对象;如果不自行初始化,就会成为默认值 基本类型(0,0.0) // 布尔值(false) 除了基本类型都是(null)。 String name; int age; //main方法 public static void main(String[] args) { //局部变量,必须声明和初始化值 int i=8; System.out.println(i); //变量类型 变量名= new Demo08(); Demo08 demo08=new Demo08(); System.out.println(demo08.name); System.out.println(demo08.age); System.out.println(salary); } }
变量命名规范:
1.所有变量名,方法名,类名需要做到 ”见名知意“ ;
2.变量名:首字母小写,驼峰命名法;例如:firstName,lastName,
3.常量名:字母全大写加下划线连接,例如:MAX_VALUE
4.类名:首字母大写,驼峰命名法,例如:Man,Women
5.方法名:首字母小写,驼峰命名法,例如:update(),addStudent()
5.运算符
Java运算符的优先级从高到低: //Ctrl+D:复制当前行到下一行
-
算术运算符:+,-,*,/,%,++,--
//一元运算符 int a=2; int b=a++;// a++/a-- 先赋值,后加减 int c=++a;// ++a/--a 先加减,后赋值 System.out.println(a); //4 System.out.println(b); //2 System.out.println(c); //4 //幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具类来操作! double pow=Math.pow(2,3); System.out.println(pow); int i=12; int j=24; //字符串连接符 + ,String System.out.println(""+i+j);//""+在前会使后面算式不计算直接拼接起来 System.out.println(i+j+"");//+""在后面时前面算式会计算后拼接上""中的内容
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=,instanceof
-
逻辑运算符:&&,||,!
//与(and)&& 或(or)|| 非(取反)! boolean a=true; boolean b=false; System.out.println("a && b:"+(a&&b));//逻辑与运算,两个变量都为true,结果才是true;短路与 System.out.println("a || b:"+(a||b));//逻辑或运算,两个变量有一个为true,结果就为true; System.out.println("!(a && b):"+!(a&&b));// 如果括号中的值是true,结果则为false,如果为false则变为true //短路运算,&&前算式结果为false,后面算式不再运算 int c=5; boolean d=(c<4)&&(c++<4); System.out.println(d);//false System.out.println(c);//5
-
位运算符:&,|,^,~,>>,<<,>>>(了解)
A= 0011 1100 B= 0000 1101 A&B=0000 1100 A|B=0011 1101 A^B=0011 0001 ~B=1111 0010 num<<n num*n次2 num>>n num/n次2
-
条件运算符:? :
//x ? y : z //如果x==true,则结果为y,否则结果为z int high=165; String type= high<160?"矮":"高"; System.out.println(type);
-
扩展赋值运算符:+=,-=,*=,/=
6.包机制,JavaDoc
包机制:
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:package pkg1.pkg2.pkg3;
一般使用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语句可以完成此功能。
//import pkg1.pkg2.pkg3.* 导入这个包下的所有类。
import pkg1.pkg2.pkg3.ClassName;
"ALT+ENTER" 导入包路径快捷键。
JavaDoc生成文档:
JavaDoc命令是用来生成自己API文档的
参数信息:
-
@author 作者名
-
@version 版本号
-
@since 指明需要最早使用的JDK版本
-
@param 参数名
-
@return 返回值情况
-
@throws 异常抛出情况
/** * @author cxh * @version 1.0 * @since 1.8 */ public class Doc { String name; String sex; /** * @param sex * @return * @throws Exception */ public String test(String sex)throws Exception { return name; } }
生成文档方式:
找到类所在的文件夹,打开cmd命令窗口,转到所在目录位置,执行命令:
Javadoc -encoding UTF-8 -charset UTF-8 Doc.java
打开目录下的index.html文件就可以查看生成的文档。
通过IDEA来生成JavaDoc文档:
1.创建一个存放JavaDoc的文件夹
2.打开IDEA上方工具(Tools),生成JavaDoc文档(Generate JavaDoc...)//如图一
3.选择我们要生成的类
4.在output directory中选择我们刚才建立的存放JavaDoc的文件路径
5.然后在Locale和其它命令行参数输入如下代码,以防中文带来的乱码
Locale:zh_CN
commad line arguments:-encoding UTF-8 -charset UTF-8
//如图二
6.进入存放JavaDoc文件中点击index.html即可看到我们生成的JavaDoc文档//如图三
图一
图二
图三