1.Java语言基础(1)

一、常用的DOS命令

win+r+cmd  打开cmd窗口
d:         切换盘符(切换到D盘)
dir        列出当前目录下的文件及文件夹
cd         切换目录
cd /       切换到根目录
cd ..      回退上级目录
cd ../../   回退多级目录
cd /d      切换跨盘目录 如:cd /d E:\DATA\All Users
cls        (clear screen)清屏
exit       退出dos命令行
calc       打开计算器
mspaint    打开画板
notepad    打开记事本
md         创建目录
rd         删除目录
rd /s      删除带内容的目录(询问是否删除) 
rd /s /q   删除带内容的目录(不询问是否删除)
del        删除文件
del *.txt  批量删除后缀名为txt的文件
ipconfig   查看ip等一些信息
hostname   查看主机名

二、常用的快捷键

复制 Ctrl+C
粘贴 Ctrl+V
撤销 Ctrl+Z
剪切 Ctrl+X
保存 Ctrl+S
打开 Ctrl+O
全选 Ctrl+A
切换窗口 alt+tab

三、JDK、JRE、JVM

A:什么是JRE
	Java Runtime Environment    Java运行环境
	包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
B:什么是JDK
	JDK(Java Development Kit    Java开发工具包)
	JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
C:为什么JDK中包含一个JRE
	其一,开发完的程序,总需要运行一下看看效果。
	其二,也是最重要的,JDK中的开发工具其实都是java语言编写的应用程序,为了方便使用才打包成exe文件,
	如果没有JRE,那么这些工具是运行不了的。
D:JDK,JRE,JVM的作用和关系    我们用JDK编写了一个java程序交由JRE 运行起来 由JVM实现跨平台

四、Java语言跨平台原理

A:什么是跨平台性 (平台指定的是操作系统)
	通过Java语言编写的应用程序在不同的系统平台上都可以运行。
B:Java语言跨平台原理
	只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。 由JVM来负责Java程序在该系统中的运行。
C:Java语言跨平台图解
	因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
	JAVA语言是跨平台的,而JVM不是跨平台的。
	JVM是不跨平台的,应为针对不同的操作系统,JAVA提供了不同的JVM,而各个操作系统的可执行文件是不同

五、第一个helloworld程序

class hello{
	public static void main(String[] args){
		System.out.println("hello world!"); 
	}
}
单行注释  格式: // 注释的文字
多行注释  格式: /* 注释的文字 */

六、标识符概述与组成规则

A:什么是标识符
	就是给类,接口,方法,变量,常量等起名字时使用的字符序列
B:标识符的组成规则
	(1): 英文的大小写字母
	(2): 数字字符
	(3): $和_
C:标识符注意事项
	(1): 不能以数字开头
	(2): 不能是java中的关键字
	(3): 区分大小写

七、常量的概述和使用

A:什么是常量
	就是在程序的执行过程中其值不发生改变的量。		
B:Java中常量的分类	
	(1):字面值常量
	(2):自定义常量
C:字面值常量的分类
	(1): 字符串常量	用双引号括起来的内容 			           "HelloWorld" ,"Hello"
	(2): 整数常量		所有整数					            12,23
	(3): 小数常量		所有小数					            12.34,56.78
	(4): 字符常量		用单引号括起来的内容   			    'a','A','0'  
	    (注意事项:单引号中只能是单个字母,单个数字,单个符号)
	(5): 布尔常量		较为特有,只有true和false
	(6): 空常量		    null
D:案例演示
	用输出语句输出各种常量。
E:Java针对整数常量提供了4种表现形式
	(1):二进制
	(2):八进制
	(3):十进制
	(4):十六进制
class Constant{
	public static void main(String[] args) {
		System.out.println(100);
		System.out.println(1.23);
		System.out.println(' '); //空格也是一个字符
		System.out.println('a');
		// System.out.println(''); //报错
		System.out.println('1');
		System.out.println("你好");
		System.out.println("true");
		System.out.println("Hello World!");
		System.out.println(""); //空字符串
		System.out.println(true); // 布尔类型
		System.out.println(false);
	}
}

八、进制转换与原反补码

A:二进制的数据表现形式
	由0,1组成。		以0b开头(1.7版本开始的,b可大写)
B:八进制的数据表现形式
	由0,1,…7组成。		以0开头
C:十进制的数据表现形式
	由0,1,…9组成。		整数默认是十进制的
D:十六进制的数据表现形式
	由0,1,…9,a,b,c,d,e,f(大小写均可)。 以0x开头(x可大写)

A:任意进制到十进制的转换原理(12345)
	位权展开法
B:十进制到任意进制的转换原理(12345)
	除基取余 直到商为0 余数反转
	十进制到X进制这个基就是X
C:二进制到八进制的简易方式     (3位为一组)
  二进制到十六进制的简易方式   (4位为一组)

A:原码
	就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小
B:反码
	正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
C:补码
	正数的补码与其原码相同;负数的补码是在其反码的末位加1
注:正数的原反补码均相同,计算机底层所有数据的运算都是采用补码进行的

九、变量的概述及格式

A:什么是变量
	在程序执行的过程中,在某个范围内其值可以发生改变的量(例如:苹果的价钱)
	变量其实是内存中的一小块区域
B:为什么要定义变量
	用来不断的存放同一类型的常量,并可以重复使用
C:变量的定义格式
	数据类型 变量名 = 变量值

十、数据类型的概述和分类

A:为什么有数据类型
	我们都知道,变量其实就是内存中的一小块区域。我们定义一个变量,其实就是开辟了一个内存空间。
	如果没有数据类型,那么我们需要开辟多大的内存空间合适呢?
	为了解决这种问题,java就给我们提供了不同的数据类型,那么针对不同的数据类型,在内存中分配了不同大小的内存空间。
B:Java中数据类型的分类
	(1): 基本数据类型
	(2): 引用数据类型(后面讲解): 数组 , 类 , 接口
C:基本数据类型的详细讲解
	(1): 数值型
			整数型			字节数			范围
				  byte 		 1(8bit)       	-128  ~  127 思考题:为什么 -128-----127  
				  short		 2(16bit)	   	-2^15 ~  2^15 - 1
				  int		 4(32bit)      	-2^31 ~  2^31 - 1
				  long		 8(64bit)      	-2^63 ~  2^63 - 1
			浮点数
				 float       		4(32bit)      -3.403*10^38  ~ 3.403*10^38
				 double     	    8(64bit)	  -1.798*10^308 ~ 1.798*10^308
	(2): 字符型   char       		2(16bit)	   0 ~ 2^16 - 1 = 65535
	(3): 布尔型   boolean     		1

	整数默认是int类型的 , 浮点数默认是 double类型的
	注:1.变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量
	    2.没有初始化值不能直接使用
	    3.在一行上建议只定义一个变量,可以定义多个,但是不建议
	    4.Java语言中的字符char可以存储一个中文汉字
	      因为Java语言采用的是Unicode编码,Unicode编码中的每个字符占用两个字节
	      所以,Java中的字符可以存储一个中文汉字

十一、数据类型转换

Java中的默认转换规则
	(1): boolean类型不能转换为其他的数据类型
	(2): byte,short,char—int—long—float—double
	(3): byte,short,char之间不转换,他们参与运算首先转换为int类型
强制转换的格式
	 目标数据类型 变量名=(目标数据类型)(被转换的数据);
强制转换的注意事项
	尽量不要使用强制类型转化,因为可能存在损失精度的问题

十二、字符和字符串参与运算

A:ASCII码表的概述
	记住三个值:
		'0' 48
		'A' 65
		'a' 97
B:案例演示
	System.out.println("hello" + 'a' + 1);     helloa1
	System.out.println('a' + 1 + "hello");     98hello

十三、运算符的基本介绍

A:什么是运算符
	对常量和变量进行操作的符号称为运算符
B:运算符的分类
	算术运算符		
	赋值运算符
	比较运算符
	逻辑运算符
	位运算符
	三目运算符

十四、算术运算符的基本用法

A:算数运算符有哪些
	+ , - , * , / , % , ++ , -- 
B:++,--运算符的作用
	自加(++)自减(--)运算
	++:自加。对原有的数据进行+1
	--:自减。对原有的数据进行-1
C:案例演示
	a:单独使用:
		放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
	b:参与运算使用:
		放在操作数的前面,先自增或者自减,然后再参与运算。
		放在操作数的后面,先参与运算,再自增或者自减。
注意事项:
	a:整数相除只能得到整数。如果想得到小数,请使用浮点数
	b:/获取的是除法操作的商,%获取的是除法操作的余数
	  %运算结果的符号,取决于参与运算是左边的符号

十五、赋值运算符的基本用法

A:赋值运算符有哪些
	=, +=,-=,*=,/=,%=
B:案例演示
	赋值运算符的基本用法

注意事项:
	a:基本的赋值运算符:=
		把=右边的数据赋值给左边
	b:扩展的赋值运算符:+=,-=,*=,/=,%=
		+= 把左边和右边做加法,然后赋值给左边
	c: 赋值运算符要求左边的数据必须是一个变量

例题:short s=1;s = s+1;        报错
	  short s=1;s+=1;           += 具有数据类型强制转换作用

十六、关系运算符的基本用法

A:关系运算符有哪些
	== ,!= , < , > , <= , >= , instanceof
注意事项:
	无论你的操作是简单还是复杂,结果是boolean类型。
	"=="不能写成"="。

十七、逻辑运算符的基本用法

A:逻辑运算符有哪些
	&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
注意事项:
	a:逻辑运算符一般用于连接boolean类型的表达式或者值。
		在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6 。
	b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
		算术表达式:a + b
		关系表达式:a == b
B:案例演示
	逻辑运算符的基本用法
C:结论:
	&逻辑与:有false则false。
	|逻辑或:有true则true。
	^逻辑异或:相同为false,不同为true。
		举例:情侣关系。男男,男女,女男,女女
	!逻辑非:非false则true,非true则false。
		特点:偶数个不改变本身

注:&&和&的区别?
	  a:最终结果一样。
	  b:&&具有短路效果。左边是false,右边不执行
	||和|的区别?
	  a:最终结果一样。
	  b:||具有短路效果。左边是true,右边不执行
 一般情况下使用||和&&,运行速度更快