一、基础准备阶段
(一)、二进制的转换
1.十进制到二进制 (辗转相除)
2.二进制转十进制(8421码)
(二)、字节
位(bit):数字0或者1,代表一位
字节(Byte):每8个位是一个字节,是数据存储的最小单位
1 Byte=8 bit
(三)、DOS指令
win+R cmd 调出 DOS窗口
*dos指令
-exit 退出
-cls 清屏
-dos窗口中的内容复制 空白处 标记 + 选中 任意位置 鼠标右键 win10 下直接选中
-dir 列出当前目录的所有文件
-cd 命令
*cd表示 change directory (改变目录)
*cd命令的应用 cd 路径
*路径 包含绝对路径和相对路径
绝对路径 带根目录
cd C:Usersssh43Desktop
相对路径 当前路径下作为出发点
C:Usersssh43 cd Desktop
-cd .. 回到上级目录
-cd 回到根目录
切换盘符
c:
d:
e:
f:
cd ...... 回到根目录
(四)、JAVA语言开发环境
*JDK JAVA开发工具包
*JRE JAVA运行时环境
*JVM JAVA虚拟机(翻译作用)
-JDK目录的介绍
JDKbin: 该目录下存放了很多命令。例如javac.exe 和java.exe
javac.exe 负责编译
java.exe 负责运行
(五)、Classpath / Path 环境变量的配置
-开发Helloworld.java源程序
-将Helloworld.java通过javac.exe进行编译
-打开DOS 直接输入javac命令回车出现
'javac.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
*如何解决呢
*-*windows操作系统是如何搜索硬盘上的命令的呢
-会从当前目录下搜索
-当前目录没有会从环境变量path指定的路径中搜索
-如果都搜索不到则报错 'javac.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
*在windows下把路径添加到path环境变量中即可
-当运行JAVA程序的时候 需要给类加载器ClassLoader指定路径 也可以通过Classpath来实现
可以通过新建环境变量 Classpath=F:
也可以不指定路径 Classpath=.
-还可以新建显得变量JAVA_HOME当作根目录
给path赋予新的变量%JAVA_HOME%bin
%JAVA_HOME%jrebin
(六)、HelloWorld入门程序
******.java 源文件
******.class 字节码文件
*运行阶段
-JAVA的编译 用DOS指令 编译
dos中
javac java的路径 (java 的自检查)
dos下
java 类名
java a
java b
java c
* java a.class(错误)
* 运行阶段的过程
-打开DOS窗口
-输入:java A
-java.exe命令启动JAVA虚拟机(JVM) JVA会启动类加载器ClassLoader
-ClassLoader会去硬盘上寻找A.class文件
-输入:java B
-java.exe命令启动JAVA虚拟机(JVM) JVA会启动类加载器ClassLoader
-ClassLoader会去硬盘上寻找B.class文件
-CL找到文件后会将该字节码装载到JVM中
-JVM会将 A.class字节码文件解释成二进制码,并执行
public class HelloWorld { public static void(String[] args){ System.out.println("HelloWorld"); } }
javac HelloWorld.java 编译
java HelloWorld 运行【不需要输入.class】
(六)、java的注释怎么写
-单行注释 //单行注释 -多行注释 -javadoc注释
-这种注释会被javadoc.exe工具提取并生成帮助文档
****对HelloWorld程序进行解释
//public 表示公开的 //class表示一个类 //HelloWorld表示一个类名 public class HelloWorld{//表示一个公开的类,起名HelloWorld //类体中不允许直接编写java语句【除声明变量以外】 //类体 【记住】 public static void main(String[] args){//表示定义一个公开的静态的主方法 //方法体 //方法体 //方法体 //方法体 //方法体 //java语句【java语句以“;”终止,分号必须是半角分号】 //先记住:以下代码的作用是向控制台输出一段消息 //以下的双引号必须是半角双引号【是java语法的一部分】 //java中所有的“字符串”都使用双引号括起来。 System.out.println("我爱你!"); //再向控制台输出消息 System.out.println("Hello Jackson"); //输出中文 System.out.println("お久しぶりです。"); //输出中文 System.out.println("Hello World"); //输出中文【全角的双引号只是字符串,不是Java语法】 System.out.println("我是一个“程序员”"); } }
(七)、java中的标识符
关于java语言当中的标识符
1、什么是标识符
-在java源程序当中凡是程序员有权利自己命名的单词都是标识符
-标识符在EditPlus编辑器中以黑色高亮字体显示
-标识符可以标识什么元素呢?
*类名
*方法名
*变量名
*接口名
*常量名
......
2、标识符的命名规则【不按照规则来,编译器会报错,是语法】
-一个合法的标识符只能由“数字、字母、下划线、美元符号”组成,不能包含其他符号
-不能以数字开头
-严格区分大小写
-关键字不能做标识符【蓝色】
-理论上无长度限制
3、标识符的命名规范【只是一种规范,不属于语法,不遵守编译器不会报错】
-最好见名知意
-遵守驼峰命名方式
-类名、接口名:首字母大写,后面每个单词首字母大写
-变量名,方法名:首字母小写,后面每个单词首字母大写
-常量名:全部大写
4、合法和不合法的标识符
合法 不合法
--------------------------------------
_123Test 123Test
HelloWorld HelloWorld!
$HelloWorld HelloWorl#!
HelloWorld Hello World
class1 class
public0 public
5、所有的“常量”名:全部大写,并且单词和单词之间采用下划线链接。
-USER_AGE:用户年龄
-MATH_PI:固定的常量3.1415926......
public class IdentifierTest01 //IdentifierTest01是一个类名 { //main是一个方法名 public static void main(String[] args) { //args是一个变量名 System.out.println("Hello, World!"); } //dosome就是方法名 public static void dosome(){ //i就是变量名 int i =10; } }
(八)、java中的关键字
关键字 【蓝色字体】 *什么是关键字? SUN公司开发JAVA语言的时候,提前定义好了一些具有特殊含义的单词,这些单词全部小写, 由于具有特殊含义所有不能作为标识符。 *java语言中的所有关键字全部小写。【java语言中是严格区分大小写的】 public class Public{ } *关键字有哪些呢 void class int long ......
(九)、常量的概念与分类
常量:在程序运行期间,固定不变的量。
常量的分类
-字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:"abc" "Hello" "123"
-整数常量:直接写上的数字,没有小数点。例如:100、300、0、-250
-浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0
-字符常量:凡是用单引号引起来的单个字符,叫做字符常量。例如:'A'、'b'、'9'、'中'
*注:只能是一个字符
-布尔常量:只有两种取值:true、false
-空常量:null 表示没有任何数据。
public class Demo01Const{ public static void main(String[] args){ //字符串常量 System.out.println("ABC"); System.out.println(""); //字符串双引号中内容为空 System.out.println("123"); //整数常量 System.out.println(30); System.out.println(-500); //浮点常量 System.out.println(3.14); System.out.println(-2.5); //字符常量 System.out.println('A'); System.out.println('2'); //System.out.println(''); 字符单引号中内容有且只能有一个字符,不能为空 //布尔常量 System.out.println(true); System.out.println(false); //空常量【空常量不能直接打印输出】 //System.out.println(null); } }
(十)、数据类型
1.基本数据类型
整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
2.引用数据类型
字符串、数组、类、接口、Lambda、
注意事项:
1、字符串不是基本类型,而是引用类型。
2、浮点型可能只是一个近似值,并非精确的值
3、数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节
4、浮点数当中默认类型是double。如果一定要使用float类型,需要加上后最F
如果是整数,默认是int类型。如果一定要使用long类型,需要加上后最L
public class Demo01Const{ public static void main(String[] args){ System.out.println(100L); } }
(十一)、变量的概念与分类
变量:在程序运行期间,内容可以改变的量。
*如何创建一个变量并且使用的格式:
数据类型 变量名称;//创建了一个变量
变量名称 = 数据值;//赋值,将右边的数据值赋值交给左边的变量
public class Demo02Variable{ public static void main(String[] args){ //创建一个变量 //格式:数据类型 变量名称; int num1; //向变量当中存入一个数据 //格式:变量名称 = 数据值; num1 = 10; //当打印输出变量名称的时候,显示出的是变量的内容 System.out.println(num1);// 10 //改变变量中本来的数字,变成新的数字 num1 = 20; System.out.println(num1);// 20 } }
*一步到位的格式
数据类型 变量名称 = 数据值;//在创建一个变量的同时,立即放入指定的数据值
public class Demo02Variable{ public static void main(String[] args){ //使用一步到位的格式来定义变量 //格式:数据类型 变量名称 = 数据值; int num2 = 25; //当打印输出变量名称的时候,显示出的是变量的内容 System.out.println(num1);// 25 //改变变量中本来的数字,变成新的数字 num2 = 35; System.out.println(num1);// 35 } }
其他数据类型的演示
public class Demo03Variable{ public static void main(String[] args){ byte num3 =30;// 注意:右侧数值的范围不能超过左侧数据类型的取值范围 System.out.println(num3);// 30 // byte num4 =400;// 右侧超出了byte数据范围,错误! short num5 =50; System.out.println(num5);// 50 long num6 =3000000000L; System.out.println(num6);// 3000000000 float num7 =2.5F; System.out.println(num7);// 2.5 double num8 =1.2; System.out.println(num8);// 1.2 char zifu1 ='A'; System.out.println(zifu1);// A zifu1 ='中'; System.out.println(zifu1);// 中 boolean var1 = true; System.out.println(var1);// true var1 =false; System.out.println(var1);// false // 将一个变量的数据内容,赋值交给另一个变量 //右侧的变量名称var1已经存在,里面装的是false布尔值 //将右侧变量里面的false值,向左交给var2变量进行存储 boolean var2 =var1; System.out.println(var2);// false } }
变量的注意事项
使用变量的时候,有一些注意事项:
1.如果创建多个变量,那么变量之间的名称不可以重复。
2.对于float和long类型来说,字母后缀F和L不要丢掉。
3.如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围。4,没有进行赋值的变量,不能直接使用:一定要赋值之后,才能使用。
5.变量使用不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
6.可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
public class Demo03VariableNotice{ public static void main(String[] args){ int num1=10;// 创建了一个新的变量,名叫num1 //int num1 =20;//又创建了另一个新的变量,名字也叫num1,错误! int num2 =20; int num3; num3 =30; int num4;// 定义了一个变量,但是没有进行赋值 // System.out.println(num4);//直接使用打印输出就是错误的! // System.out.println(num5);// 在创建变量之前,不能使用这个变量 int num5 =500; System.out.println(num5); // 500 { int num6 =60; System.out.println(num6); // 60 } // int num6; // System.out.println(num6);// 已经超出了大括号的范围,超出了作用域,变量不能再使用了 // 同时创建了三个全都是int类型的变量 int a, b, c; // 各自分别赋值 a = 10; b = 20; c = 30; System.out.println(a);// 10 System.out.println(b);// 20 System.out.println(c);// 30 // 同时创建三个int变量,并且同时各自赋值 int x = 100, y = 200, z =300; System.out.println(x);// 100 System.out.println(y);// 200 System.out.println(z);// 300 } }