java基础详解

	Dos命令
		打开Dos快捷键:windows+R
			输入:cmd
				开启快速复制:鼠标右键>属性>编辑选项
		cd 
			切换目录
		cd..
			返回上层目录
		cd\
			退回当前目录
		dir
			查看当前目录子文件和子文件夹
		cls
			清屏
		exit
			退出
		Tab
			自动补全
		↕
			使用用过的命令
		mkdir
			创建
		rmdir
			删除
jdk新特性
	jdk1.2
		JVM
			数据类型敏感
		结构分离
			Java2 被划分为J2SE J2EE J2ME
	jdk1.5
		自动装箱与拆箱
			自动装箱的过程
				每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中
			自动拆箱的过程
				每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法
			自动装箱
				只需将该值赋给一个类型包装器引用,java会自动创建一个对象
			自动拆箱
				只需将该对象值赋给一个基本类型即可
			java——类的包装器
				类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean
		枚举
			简单的用法
				JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值
			复杂用法
				Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象
		静态导入
			通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法
	jdk1.7
		switch中可以使用字串
		Boolean类型反转,空指针安全,参与位运算
		安全的加减乘除
	jdk1.8
		允许在接口中有默认方法实现
		函数式接口
		 方法和构造函数引用
jdk安装
	jdk和jre安装同一路径
	测试是否成功:java -version
java小程序详解
	public<公共的> class<类> name<类名><首字母大写>{<类体的开始><一对{}就要缩进(Tab)>
		public<公共的> static<静态的> void<没有返回值的> main<主方法><程序的入口>(String[] args<参数列表>){<方法体的开始>
			System<系统>.out<输出>.println<打印>("Hello");<""里原封不动的输出>
		}<方法体的结束>
	}类体的结束
类(Class)
	一个文件中可以有多个类,但只能有一个类被public修饰,并且这个类名要与文件名一致
方法(Method)
	一个类中可以存在多个方法,但是只能有一个主方法,主方法是程序的入口,逐行执行主方法中的代码
	一个类中可以没有主方法,但是如果解释执行一个类,没有主方法会报错
注释(Comment)
	什么是注释?
		解释说明文字
	为什么使用注释?
		对程序的说明
		便于后期维护
	单行注释
		作用域:只在当前行有效
		嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
		颜色:绿色
		位置:行的上面或者行的末尾
	多行注释
		作用域:多行有效
		嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
		颜色:绿色
		位置:类的上面或方法的上面
	文档注释
		作用域:多行有效
		嵌套:可以嵌套单行注释,不可以嵌套多行注释和文档注释
		颜色:墨蓝色
		位置:类的上面或方法的上面
		可以出现在类的API文档中,生成某个类的api文档,javadoc 
	注释的内容不会被编译(可以通过反编译工具验证)
标识符(Identifier)
	在java中一切起名字的地方的名字就是标识符
	命名规则
		标识符只能数字,字母,下划线_,美元符号$任意组合而成,但是数字不能开头
		标识符严格区分大小写
		关键字不能作为标识符使用
	命名规范
		见名知意
		驼峰命名原则
			包: 全部小写
				单级包: shangxuetang
				多级包: shang.xue.tang
			类|接口
				每个单词的首字母大写 ShangXueTang
			方法|变量
				第一个单词全部小写,第二个单词开始,每个单词首字母大写 shangXueTang
			常量
				全部大写 每个单词之间使用_进行分割 SHANG_XUE_TANG
	关键字
		在java中,有一些词有自己的用法或者用途,这些词就是关键字
		所有的关键字都是小写,颜色存在不同显示
	保留字
		在java中,有一些词将来有可能有自己的用法或者用途,这些词就是保留字
			goto
			const
常量(Constant)
	在程序执行过程中,其值不会发生改变的量
	分类
		字面值常量
			整数常量: 123    -123
			小数常量: 1.2 -1.2
			字符串常量: "abc"
			字符常量: 'a'
			布尔常量: true,false
			空常量: null
		自定义常量
			final修饰的变量为常量
	知识扩展
		(println)ln是光标从这一行的行位换到下一行的行首
变量(Variable)
	可变的量
	在java程序执行过程中,其值会发生改变的量
	在内存中,开辟一块空间,用来存放指定数据类型的数据
	语法
		声明的同时赋值
			数据类型 变量名  =  变量值;
				int a=10;
		先声明后赋值
			数据类型 变量名;
				String name;
			变量名= 变量值;
				name="张三";
		一行同时声明多个变量
			int x,y,z;
		= 是java中唯一一个自右向左运算的符号
			z=x=y=10;
	变量名字 (遵循标识符的命名规则和规范)
	变量的值 (和数据类型一致)
	作用域: {}
		在其作用域范围内才能使用,变量同一时只能指向一个值
	同一作用域中的变量不能同名
	分类
		局部变量
			方法|语句块内定义的变量
			使用前必须声明并且已赋值
		成员变量|实例变量
			类中方法外
				如果成员变量只声明未赋值,存在默认值
				byte,short,int,long-->0
				float,double-->0.0
				char-->\u0000
				boolean-->false
				String-->null
数据类型(DataType)
	基本数据类型
		byte(字节型)
			1个字节 8位
				[-128,127]
		short(短整型)
			2个字节 16位
				[-32768,32767]
		int(整型)
			4个字节 32位
				[-2147483648——2147483647]
		long(长整型)
			8个字节	64位
				[-9223372036854775808~9223372036854775807]
		float(单精度)
			4个字节
				精度为6~7位有效数字
		double(双精度)
			8个字节
				double的精度为15~16位
		char(字符型)
			2个字节
				0~65535
		boolean(布尔型)
			1位
				true
				false
		String(字符串)
		整数的字面长量值默认的数据类型是int类型
		如果给byte,short赋值,只要在其范围之内的字面常量值都能成功赋值
		如果想要给long类型的常量赋值,需要在数据的后面添加一个L/l 推荐使用L
		小数默认字面常量值类型为double,如果想要给float赋值,在数据的后面添加一个f/F
		小数因为内部存储方式的不同,运算不精确的
		如果字符型的数据参与运算,默认转为十进制的数再去运算
	引用数据类型
		类(class)
		接口(interface)
		数组[](array)
数据类型转换(DataTypeConvert)
	boolean类型不参与类型转换
	自动类型提升:隐式类型转换
	从小范围类型->大范围的数据类型
		byte b1=127;
		short s1=b1;
	强制类型转换:显示类型转换
	从大范围类型->小范围类型,有可能会损失精度
		float f1=(float)1.9;
		int int1=(int)f1;
	小范围数据类型 变量名 = (小范围数据类型)大范围数据类型;
		byte by1=(byte)128
转义字符(EscapeCharacter)
	用来表示有些具有特殊含义的字符
	转义字符从\开始
	\t 制表符
		一个制表符代表8个空格,一个字母1个空格,一个汉字占2个空格
		查看前面的内容,是否满足制表符的整数倍,如果不满足补满,如果满足重开一个制表符位
	\b退格
		光标会删一格
	\n换行
		ln类似
	\r 回到行首
		光标回到行首
数值形式(Numerical)
	整数的不同进制:满几进一
		二进制: 由0,1组成    以0b/0B开头表示二进制
		八进制: 由0~7组成    以0开头表示八进制
		十进制: 默认
		十六进制: 0~9,a~f组成 大小写都可以 以0x/0X表示十六进制
		其他进制转十进制:从后往前,从最后一位开始*进制数,次方从0开始每次+1,最终所有位数的值求和
		十进制转其他进制:一直除以要转为的进制数,得数为0为止
	浮点数的表示形式
		0.5->0可以省略
		科学计数法表示
			e->10
			1.234e2 ->1.234*10^2
			1.234e-2 ->1.234/10^2
运算符(Operator)
	操作数: 运算符左右两边的数叫做操作数
	表达式: 运算符链接两边的操作数咋横踢叫做表达式
	语句: 遇到;就是语句的结束
	单目运算符|一元运算符
		操作数只有一个    ++  --  -负号
	双目运算符|二元运算符
		+ - / *  %
	三目运算符|三元运算符
		条件运算符
	算数运算符
		+
			+正号
			加法运算
			字符串的连接符
				当+左右两边由字符串的出现,就作为字符串的连接符使用,最终得到一个字符串结果
		-
			负号  不能省略
			减法运算
		*
			乘号
			乘法运算
		%
			取余数|取模|模以
			如果前面的操作数<后面的操作数,结果为第一个操作数
		++ --
			操作自己|不影响别人
				++放在操作数的前面还是后面都是自身+1
				--放在操作数的前面还是后面都是自身-1
			操作别人|影响别人|参与运算
				++--放在操作数的前面,先自身先去+1|-1,再参与运算
				++--放在操作数的后面,先参与运算,再自身+1|-1
	赋值运算符
		基本赋值运算符
			=
			java中唯一一个自右向左运算的符号
			优先级别最低
	扩展赋值运算符
		算数运算符+基本赋值运算符
		+=  -=  *=  /=  %= 
		优点: 自动做强制类型转换 ,提高执行效率
		缺点: 不直观
	关系运算符|比较运算符
		> < >= <= 
			只能针对byte,short,int,long,char,float,dobule进行比较
		== !=
			可以对基本数据类型或引用数据类型做比较
		比较运算符最终的结果都是boolean类型的值  true,false
	逻辑运算符
		逻辑运算符左右两边的操作数都是值为boolean类型的表达式
		& 与  一个为false就是false,两个都是true才是true
		| 或  一个为ture就是true,两个都为false才是false
		^ 亦或 相同为false,不同为true
		&& || 短路,如果第一个值已经能够决定表达式的结果,第二个值就不再执行
	条件运算符
		条件表达式 ? 值1 : 值2;
		条件表达式是值为boolean类型的表达式
		执行流程
			计算条件表达式
			如果值true,最终结果取值1
			如果值false,最终结果取值2
	位运算符
		先把操作数转为二进制,参与运算,结果转为10进制
		& 统一位数的两个数,如果一个为0就是0,两个都为1才是1
		| 同一位数的两个数,如果一个为1就是1,两个都为0才是0
		^ 相同为0,不同为1
		右移运算符  相当于/2的第二个操作数次方
		>> 假设第一个操作数二进制数的右边有一个分水岭,移动第二个操作数个位数,移出分水岭的数不计算,剩下的二进制转为十进制
		左移运算符  相当于*2的第二个操作数次方
		<<  向左移动第二个操作数个位数,空余补0,最终转为十进制
Scanner ( 接受键盘输入)
	导包
		说明Scanner类的地址 使用import关键字+路径 导包  java.util.Scanner;
		导包要类的上面导包
	创建Scanner类型的变量--根据公式  Scanner sc=new Scanner();
	使用功能
		nextInt()  接受int类型的整数
		nextByte() 接收byte类型的整数
		nextShort() 接收short类型的整数
		nextLong() 接收long类型的整数
		nextDouble()
		nextFloat()
		next() 接收用户输入的字符串类型的数据
			从有效字符开始接收,知道遇到空格,tab不再接收了,enter停止功能
		nextLine() 接收字符串数据,遇到enter结束功能(接收一整行)
	关闭
		变量.close();
			一定要再这个类使用完毕Scanner之后再关闭,否则后面重新开启也无法继续使用
Random(产生随机数)
	导包  java.util.Random
	创建Random类型的变量|引用
	通过引用数据功能
		随机整数
			nextInt()   随机产生int类型范围内的一个随机整数
			nextInt(整数n)  范围: [0,n)随机整数
		公式
			[min,max)   引用.nextInt(max-min)+min
			[min,max]   引用.nextInt(max-min+1)+min
		随机小数
			nextDouble() 产生随机小数   [0,1)
流程控制语句(If)
	顺序结构
		选择结构:根据判断,满足条件执行某些代码
		循环结构:重复执行某些代码
	if..else
		单分支|单选泽
			if(条件判断){
			满足条件要执行的语句
			}
			执行流程
				计算判断条件(值为boolean类型的表达式)
				如果true,执行{}语句体
				如果false,不执行,直接跳过if结构
		双分支|双选择
			if(条件判断){
			语句体1;
			}else{
			语句体2;
			}
			无论是否满足都会有与具体执行,肯定会有一个结果
		多分支|多选择
			同是双分支
	if和条件表达式之间的区别
		if可以对多个条件多次判断
		条件表示肯定会有结构

猜你喜欢

转载自blog.csdn.net/weixin_45116982/article/details/90582666