java学习day02
注释
注释是对java源代码的解释说明
注释只保存在java源文件中,字节码文件没有注释信息
1 /* 2 这是一个多行注释 3 */ 4 5 //这是一个单行注释 6 7 8 * 9 *javadoc注释10 *javadoc使用,新建一个文件夹,在dos命令窗口下使用javadoc -d 新建文件夹名字 -作者 -版本 (有的信息要提取用-要提取的信息)要提取的Java文件11 *执行完命令后,会在javadoc生成一堆文件,找到index.html用浏览器打开12 *命名要用到@如@author作者,@version版本号13 *14 */
Hello World
//class关键字定义类//public是权限修饰符,表示公开的,所有类都可以访问这个类public class Demo1 { //这是程序的入口main方法,必须要有 public static void main(String[] args) { //这是方法体,方法体遵循自上而下依次执行 //这是输出语句,打印hello world System.out.println("hello world"); } }
在一个源文件中可以有多个类,public类不是必须的,但如果有,有且只有一个
public修饰的类的类名必须和源文件名保持一致
标识符
什么是标识符
类名、方法名、变量名、常量名、接口名……凡是程序员自己有权命名的都是表示符
标识符命名规则:
1、标识符只能由数字,字母(包括中文),下划线_、美元符号$组成,不能含有其他符号
2、表示符不能以数字开头
3、关键字不能做标识符
4、标识符严格区分大小写
5、标识符理论上没有长度限制
main是一个方法名称,属于标识符,但不可以修改
标识符命名规范
1、见名知意
2、遵循驼峰命名方式,有利于单词与单词之间进行间隔
3、类名和接口名要求:每个单词首字母大写,其余小写
4、变量名和方法名要求:第一个单词首字母小写,其余单词首字母大写
5、所有常量名大写,并且单词与单词之间用下划线衔接
什么是关键字?
关键字是SUN公司开发java语言时,提前定义好的一些具有特殊含义的单词,关键字全部小写
变量
什么是变量?
变量是内存当中存储数据的基本单元,java是强类型语言,任何数据都有数据类型,不同的数据类型,在内存中分配的空间大小不同
变量包含哪三要素?
变量的数据类型
变量的名字
变量保存的值
类型决定空间大小,名字便于以后访问,值是变量保存的数据
变量的声明/定义
语法格式:数据类型 变量名 = 值;
public class Dem01 { public static void main(String[] args) { int i = 10;//定义变量时赋值 int n;//先定义变量 n = 10;//后赋值 } }
java中还可以同时定义多个变量
public class Dem01 { public static void main(String[] args) { int n,i,t; } }
但是无法同时对多个变量进行赋值
变量的作用域
作用域就是变量的有效范围
一个方法就是一个作用域,方法外是同一个作用域
在for循环声明的变量i时,出错了,那是因为在同一个域中变量不能重名,for循环在main方法这个域中,for循环外已经声明了变量i,使用循环里就不能再次声明变量i
在同一个类当中,当成员变量和局部变量重名,使用该重名变量时,用的是谁?
就近原则,用的是局部变量
如果非要使用成员变量怎么办?
如果成员变量是静态变量直接使用类名.即可
如果是实例变量那就先创建对象再使用引用.来调用
变量的分类
根据变量的位置不同可以分为:局部变量(方法体内声明)和成员变量(方法体外声明)
局部变量只有在方法体中有效,方法结束,内存就释放
成员变量又分为实例变量和静态变量
public class Dem01 { public static void main(String[] args) { int c = 10;//局部变量,在同个类中可以直接使用 System.out.println(c); System.out.println(Demo2.a); System.out.println(new Demo2().b); } }class Demo2{ static int a = 5;//静态变量,在其他类中要使用类名.的方式引用 int b = 0;//实例变量,在其他类中需要先创建对象才能通过引用.的方式引用}
数据类型
数据类型分为基本数据类型和引用数据类型,除了八种基本数据类型外其他都是引用数据类型
基本数据类型:
整型:
byte、short、int、long
浮点型:
float、double
布尔型:
boolean
字符型:
char
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
boolean | 1字节 |
char | 2字节 |
计算机存储单位:
1字节 = 8bit 1byte = 8bit 1kb = 1024byte
数据类型的取值范围
byte:[-128~127]
short:[-32768~32767]
int:[-2147483648~2147483647]
char:[0~65535]
short和char实际容量相同,但是char可以表示更大的数字,因为char表示文字,文字没有负数,所有char可以表示更大的正数范围
整数型
整数型有byte,short,int,long,其中最常用的是int类型
进制
二进制:以0b开头(二进制位最左边是符号位,0表示正数,1表示负数
八进制:以0开头(如01换算成十进制就是1,0123换算成十进制就是83)
十六进制:以0X或者以0x开头(如:0x25换算成十进制是37)
在默认情况下,整数型被当做int类型处理,如果希望这个数据被当做long类型来处理,要在数据后面添加L/l
浮点型
浮点型有float和double
浮点型是有限、离散、舍入误差、大约、接近但不等于
所有最后避免使用浮点数进行比较,也不适合进行高精度的运算,如果需要进行高精度运算可以使用BigDecimal数据工具类。
任意一个浮点型都比整型空间大
在默认情况下浮点型会被当做double类型来处理,如果希望这个数据被当做float类型来处理,要在数据后面添加F/f
字符型
所有字符的本质还是数字,整数能直接赋值给char类型
当一个整数型赋值给char类型变量时,在没有超过char取值范围的情况下会自动转换成char字符型
类型转换
八种数据类型除了boolean不能进行类型转换,其他七种都有可以进行类型转换
类型转换分为:
自动类型转换:小容量的数据类型自动转换为大容量当数据类型,这种转换不需要程序员亲自操作
强制类型转换:当大容量数据类型转换为小容量的数据类型时,不能直接转换需要使用强制类型转换符进行强制转换
使用强制类型转换无论一个数是否超过自身取值范围都能转换,但是会损失精度
这样子虽然没有报错但是如果将t输出会有意想不到的结果
正数变成了负数!!!
为什么会这样!!!
举个栗子:long类型的100转换为int类型的100
所以进行强制类型转换时要注意是否超出取值范围,否则后果自负
整数型运算
byte、char、short之间进行混合运算时先各自转换为int在进行计算
byte、char、short、long进行混合运算时会先各自转换为long在计算
转义字符
java中转义字符是反斜杠(\)
反斜杠(\)后面的字符会进行转义,如果遇到无法转义的字符则会报错
常见的转义字符
\n:换行符
\t:tab制表符
\":普通的双引号(当想要输出双引号时可以使用这个)
\':普通的单引号(当想要输出单引号时可以使用这个)
\\:普通的反斜杠(想要输出反斜杠时可以用)
\u:表示一个字符