Java学习笔记02: 基本语法数据类型
注释
Java注释的三种方式
- 单行注释
- 多行注释
- 文档注释
public class Hello {
public static void main(String[]args){
// 这是单行注释,可以注释一行文字
/*
这是多行注释,可以注释一段文字
*/
/*
*@Description Hello World
*@Auter:wallenhuang
*/
System.out.println("Hello World");
}
}
注释并不会被程序执行,注释是写给写代码的人看的;
书写注释是一个非常好的习惯,同时要注意注释的规范。
文档注释又是Javadoc
格式:
/*
*@auther:xxx 作者名
*@version:xxx 版本号
*@since: xxx 使用JDK版本号
*@param: xx 参数名
*@return 返回值情况
*@throws 异常抛出情况
*/
标识符
- 关键字
abstract、assert、boolean、break、byte、case、catch...
Java所有的组成部分都需要名字、类名、变量名以及方法名都被称之为标识符
所有的标识符都应该以字母、美元符或者下划线开始;
标识符是区分大小写的,可以使用中文符号作为标识符但是不推荐这样使用
强类型语言
要求变量的使用要严格符合规定,所有的变量都必须先定义后使用;
Java的数据类型分为两大类:
- 基本类型(primitive type)
- 数值类型(整数类型、浮点类型)、boolean类型
- 引用类型(reference type)
八种基本数据类型:
short/ --2B
int/ --4B
byte/ --1B
long / --8B
float/ --4B
double/ --8B
boolean/ --1B
char/ --2B
//需要注意的是long、float类型需要在赋值的时候结尾分别添加L、F
进制转换:
16进制转换位10进制:
例如:0x10转换为10进制计算为, 1*16^1+0*16^0 = 16
8进制转换为10进制:
例如: 010转换为10进制计算为,1*8^1+0*8^0 = 8
float是有限的离散 有舍入的误差大约 接近但不等于
float f =0.1f;
double d = 1.0/10;
System.out.println(f); //0.1
System.out.println(d); //0.1
System.out.println(f===d) // false
float f1 = 213231321323132132313f;
float f2 = f1;
System.out.println(f1===f2); //true
结论:最好避免使用浮点数进行比较
一个字节等于8位 1 B(byte,字节) = 8 bit(位)
强制类型转换:
grammer: (type)value
- 由于Java是强类型语言,所以要进行有些运算的时、候,需要用到类型转换
低 -> 高
byte short char int long float double
运算中,不同类型的数据先转化为同一种类型,然后开始进行计算;
类型转换应该遵循: 1.高精度转换为低精度的,低精度到高精度是自动转换。2.不能对boolean类型转换
转换的过程中可能会出现内存溢出,
可以把字符转换为数字
char c1 = 'a';
char c2 = '中';
System.out.println( (int)c1 ); //97
变量:
Java是一种强类型语言,每个变量都必须声明类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型作用域
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量分为:实例变量、局部变量、类变量
public class Hello{
static double salary = 25000; //类变量
String name; //实例变量
pubilic static void main(String[]args){
int i =1; //局部变量
final double PI = 3.14;// 常量
}
}
对于局部变量很好理解,对于实例变量和局部变量来说,实例变量需要实例化(Hello hello =new Hello(); hello.name).而对于类变量来说可以直接使用。
转义字符:
// \t 制表符
// \n 换行
// ...
字符串:
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1===s2); //true
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1===s2) // false
上述例子可以看出,其实对于基本数据类型来说存储的值,进行比较值相同结果就是相同的;而对于对象(new ())来说,比较的不仅仅是值还有内存地址,内存地址相同值相同才会相同;显然上述的比较两个例子的内存地址不相同;
要注意的是int类型是转化不了string类型的。
验证&&运算符的步骤:
int c = 5;
boolean d = (c<4)&&(c++<4)
System.out.println(c)
如果计算d出来的结果为5,则说明与运算符只计算了左边,没有计算右边。如果得出与运算符结果为6,说明已经计算到了右边。
包机制:
- 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
语法格式:
package pkg1[..pkg2[.pkg3]]
一般使用公司域名倒置来作为包名,为了更好的使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句可以完成此功能
import package[....]
浙公网安备 33010602011771号