Java基础
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
标识符注意点
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始。
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的
- 合法标识符举例: age、$salary、_value、_1 _value
- 非法标识符举例: 123abc、-salary、 #abc
数据类型
- 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
- 弱类型语言
Java的数据类型分为两大类
- 基本类型
- 引用类型
内置数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 例子:double d1 = 123.4。
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
- 例子:boolean one = true。
char:
- char类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(即为 0);
- 最大值是 \uffff(即为 65535);
- char 数据类型可以储存任何字符;
- 例子:char letter = 'A';。
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);
System.out.println(i2);
System.out.println(i3);
System.out.println("==================================");
//浮点数拓展 银行业务怎么表示? 钱
//BigDecimal 数学工具类
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d);//false
float d1=232323232131213f;
float d2=d1+1;
System.out.println(d1==d2);//true
//=======================================
//字符拓展
char c1='A';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换为int类型
System.out.println(c2);
System.out.println((int)c2);
//所有字符本质是数字
//编码 Unicode 表:(97=a 65=A) 2字节 0-65536 2 16
//U0000 UFFFF
char c3='\u0061';
System.out.println(c3);
//==================================
//转义字符
// \t 制表符
// \n 换行
String sa=new String("hello world");
String sb=new String("hello world");
String sc="hello world";
String sd="hello world";
System.out.println(sa==sb);
System.out.println(sc==sd);
//对象 从内存分析
//布尔值扩展
boolean flag=true;
if(flag==true){}
if(flag){}
//Less is More! 代码要精简易读
}
引用数据类型
- 类
- 接口
- 数组
运算中,不同类型的数据先转化为同一-类型,然后进行运算。
- 强制转换 (类型)变量名 高->低
- 自动转换 低->高
byte, short, char -> int -> long -> float -> double
低----------------------------------------------->高
变量作用域
- 类变量
- 实例变量
- 局部变量
public class Variable
{
static int allClicks=0;//类变量
String str="hell0 world";//实例变量
public void method()
}
int i=0;//局部变量
}
}
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final double PI = 3.14
常量名一般使用大写字符。
变量的命名规范
- 所有变量、方法、类名见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线: MAX _VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
运算符
- 算术运算符:+, -, *, / , %, ++, --
- 赋值运算符=
- 关系运算符:>, <, >=, <=, ==, !=, instanceof
- 逻辑运算符:&&, ||, !
- 位运算符:&, |, ^,~, >>,<<,>>>
- 条件运算符?:
- 扩展赋值运算符:+=, -=, *=, /=
字符串连接符
System.out.println(""+a+b);//字符串在前所以整个运算做了拼接
System.out.println(a+b+"");//字符串在后所以先运算再进行了拼接
包机制
为了更好地组织类, Java提供了包机制,用于区别类名的命名空间。
package pkg1[. pkg2[. pkg3...]];
一般利用公司域名倒作为包名。
为了能够使用某-个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[.package2...].(classname|*);
JavaDoc
javadoc命令是用来生成自己API文档的。
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况