常见DOS命令:
- exit 退出当前DOS命令窗口
- cls 清屏
- dir 列出当前目录下所有的子文件/子目录
- cd 命令
* 绝对路径:表示该路径从某个磁盘的盘符下作为出发点的路径
* 相对路径:表示该路径从当前所在的路径下作为出发点的路径
- cd .. 回到上级目录
- cd \ 直接回到根目录
- 怎么切换盘符:
c: 回车
d: 回车
e: 回车
机器语言:主要以编写二进制码,以打孔机为代表
低级语言:主要以汇编语言为代表
高级语言:就是C语言,Java,C++等等
目前JDK最高版本是:Java8/jdk1.8/jdk8
Java包括三大块:
JavaSE(标准版)
JavaEE(企业版)
JavaME(微型版)
其中javaSE是基础版,以后主攻方向是JavaEE方向
Java语言特性:(开源,免费,纯面向对象,跨平台)
简单性:
相对而言的,例如Java中不再支持多继承,C++是支持多继承的,多继承比较复杂
C++中有指针,Java中屏蔽了指针的概念
相对来说Java是简单的
Java语言底层是C++实现的。不是C语言。
面向对象:
Java是纯面向对象的。更符合人的思维模式,更容易理解。
可移植性:
Java程序可以做到一次编译,到处运行。
先在Java程序运行在一台虚拟机,
多线程:
多线程运行
健壮性:
和自动垃圾回收机制有关,自动垃圾回收机制简称GC机制。
Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心。
安全性
Java的加载与执行
运行过程包括两个非常重要的阶段
编译阶段
运行阶段
编译阶段
编译阶段主要的任务是检查Java是否符号编译要求
字节码文件中不是存粹的二进制,这种文件无法在操作系统当中直接执行
编译阶段的过程:
程序员需要新建一个.Java拓展名的文件
Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编程。
Javac的使用规则:
Javac java源文件的路径(在DOS命令窗口中使用)
Javac是一个Java编译工具/命令。
一个Java源文件可以编译生成多个.class文件。
编译结束后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】
运行阶段【跨平台】
JDK安装后,除了自带一个javac.exe之外,还有一个命令,叫做java.exe
Java.exe命令主要负责运行阶段
Java.exe怎么用呢?
Java 类名(例如:java A java B)【java A.class(错误的)】
运行阶段过程是:
打开DOS命令窗口
输入:java A
Java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
CLassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中
JVM将A.class字节码文件解释成二进制1010101010101010这样数据
然后操作系统执行 二进制和 底层硬件平台交互。
路径中“..”表示上级目录
路径中“.”表示当前目录
单行注释
//单行注释,只注释当前行
多行注释
/*
多行注释
多行注释
*/
Javadoc注释【这种注释是比较专业的注释,该注释内容会被Javdoc.exe工具解析提取并生成帮助文档】
/**
* Javadoc注释
* Javadoc注释
* Javadoc注释
*/
需要记忆:
Public
Class
Static
Void
System.out.println(“”);
类体
方法体
类体中不能直接编写Java语句【除声明变量以外】
一个Java语句必须以“;”结束
方法体中可以编写多条Java语句
主方法是程序的入口,固定写法,sum规定的。
Public class和class的区别:
一个Java源文件当中可以定义多个class
一个Java源文件当中public的class不是必须的
一个class会定义生成一个xxx.class字节码文件
一个Java源文件当中定义公开的类的话,可能有一个,并且该类名称必须和Java源文件名称一致。
每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法:java B
注意:当在命令窗口中执行Java hello,那么要求hello.class当中必须有主方法。没有主方法会出现运行阶段的错误
总结第一章
- 能够自己搭建Java的开发环境
- 能够独立编写helloworld程序,编译并运行
- 掌握环境变量path的原理以及如何配置
- Java中的注释
- Public class和class的区别
- 理解Java的加载与执行
标识符
命名规则:
只能由“数字,字母,下划线,美元符号”组成,不能含有其他符号
不能数字开头
严格区分大小写
关键字不能做标识符
理论上无长度限制,但是最好不要太长
命名规范:
最好见名知意
遵守驼峰命名方式
类名,接口名:首字母大写,后面每个单词首字母大写
变量名,方法名:首字母小写,后面每个单词首字母大写
常量名:全部大写
字面值:
字面值就是数据。
数据类型分为:整数型字面值,浮点型字面值,布尔型字面值,字符串型字面值,字符型字面值。
字符串型字面值:使用双引号括起来,双引号是半角的
字符型字面值:使用单引号括起来,单引号是半角的
JavaDoc
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
原码
十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。
源码的弊端
利用原码进行计算的时候,如果是正数完全没有问题。
但是如果是负数计算,结果就出错,实际运算的方向,跟正确的运算方向是相反的。
反码出现的目的
为了解决原码不能计算负数的问题而出现的。
反码的计算规则
正数的反码不变,负数的反码在原码的基础上,符号不变。数值取反,0变1,1变0。
反码的弊端
负数运算的时候,如果结果不跨0,是没有任何问题的,但是如果结果跨0,跟实际结果会有1的偏差。
补码出现的目的
为了解决负数计算时跨0的问题而出现的。
补码的计算规则
正数的补码不变,负数的补码在反码的基础上+1.
另外补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。
补码的注意点
计算机中的存储和计算都是以补码的形式进行的。
基本数据类型
注意:第二幅图的1100 1000的第一位是符号为1为负数,0为正数。
其他的运算符
注意:两个都是真才是真,一真则假。(同1为1不同为0,同0为0不同为1)
注意:一真则真。
顺序结构
package scanner;
public class sxjg {
public static void main(String[] args) {
System.out.println("努力学习");
System.out.println("天天向上");
System.out.println("快上班哇");
}
}
获取随机数
Java帮我们写好了一个类叫Random,这个类就可以生成一个随机数。
import java.util.Random;
Random r = new Random();//相当于是用Random创建一个对象
int number = r.nextInt(100);//生成随机数--真正开始干活,赋值给左边的number
System.out.println(number);
Random r = new Random();//相当于是用Random创建一个对象
int number = r.nextInt(100);//现在值的范围是0-99
System.out.println(number);
Random r = new Random();//相当于是用Random创建一个对象
int number = r.nextInt(100)+1;//现在值的范围是1-100
System.out.println(number);
//秘诀
//用来生成任意数到任意数之间的随机数7-15
//1.让这个范围头尾都减去一个值,让这个范围从0开始 -7 0-8
//2.尾巴+1 8+1=9
//3.最终的结果,再加上第一步减去的值。
Random r = new Random();
int number2 = r.nextInt(9)+7;
System.out.println(number2);
注意:
//生成随机数的代码int r = rand.nextInt(100) + 1;
//不能写在循环的里面
Random rand = new Random();
int r = rand.nextInt(100) + 1;
System.out.println(r);
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("输入一个你想要的数字");
int n = sc.nextInt();
if (n > r) {
System.out.println("大了");
} else if (n == r) {
System.out.println("对了");
break;
} else {
System.out.println("小了");
}
循环到第三次,不管对吧对,都显示答对了。
Random rand = new Random();
int r = rand.nextInt(100) + 1;
System.out.println(r);
Scanner sc = new Scanner(System.in);
int i=0;
while (true){
System.out.println("输入一个你想要的数字");
int n = sc.nextInt();
i++;
if (i==3){
System.out.println("对了");
break;
}
if (n > r) {
System.out.println("大了");
} else if (n < r) {
System.out.println("小了");
} else {
System.out.println("对了");
break;
}
看下方图片,用循环写一个出下列的效果。
int j;
for(int i=1;i<=6;i++){
for (int x = 6 ; x > i; x--){//用循环,让数字全面有空格
System.out.print( " ");
}
for(j=1;j<i;j++){//用循环输出数字
System.out.print(j);
}
for(int k=j;k>0;k--){//输出另一半的数字
System.out.print(k);
}
System.out.println();
}