编程的本质: 数据结构+算法+编程语言
人机交互:
- GUI 图形化界面
- doc命令
window + R 输入 cmd/commond 命令
cd .. 跳出当前目录进入上一层目录
cd . 进入当前目录
cd \ 进入到根目录
dir 显示当前目录下的所有文件包含 . 和 .. 隐藏文件
mkdir 创建文件夹
echo 内容 > 自定义文件名;
type 文件名 查看文件内容
del 删除文件
rd 删除文件夹
盘符: c:/ d:/ F:/
java特点:跨平台
java运行环境:
jdk(java development kit) java开发工具包
jre(java runtime environment)Java运行环境
安装java运行环境步骤:
下载jdk8版本
下一步进行默认安装目录
安装后在ProgramFiles 文件夹中
会出现一个java文件夹进入里面有两个文件夹 jdk,jre
java文件运行必须通过两个步骤 :
1)编译 javac
2)运行 java
在C:\Program Files\Java\jdk1.8.0_77\bin下执行java.exe检测jdk是否安装成功
在执行javac时会出现不是内部命令的错误
将重复出现的目录结构复制到全局的window目录下,这样电脑开机时直接扫描本目录下的所有exe文件
配置环境变量:
为了简化开发,提高代码的执行效率
将C:\Program Files\java\jdk1.8.0_77\bin粘贴到 window 中的Path目录下
java文件运行必须通过javac命令编译变成.class字节码文件继续使用java命令运行
执行java命令查看jdk是否安装成功
编写以.java文件结尾的文件内容如下:
public class Test{
public static void main(String[] args){
System.out.println("hello kitty~");
}
}
进入到 doc 窗口找到指定文件的所在位置
javac 文件名.java
java 文件名(没有后缀)
java -version:查看 jdk 版本
注释:在 java文件中解释 / 说明代码的用途
单行注释 语法: //
多行注释 语法: /* */ 不能嵌套
文档注释 语法: /** */ 一般写在类的上面
生成 java 的 api 文档:javadoc -d 指定文件夹 -author -version 文件名
关键字:在java中被赋予特殊含义的单词就是关键字
class 类 , public 公开的 , true 真 ,false 假
标识符:在java中凡是自己起名字的地方都是标识符
标识符的规范:
- 一般由26英文字母和 $ ,_ , 0~9组成
- 不可以是关键字,但是可以包含关键字
- 标识符中不可以包含空格
- 不可以用数字开头,但是可以包含数字
- 不区分大小写
变量:在栈内存中不可以有重名的变量出现
在java中变量的作用:用来存储数据的
数据类型作用:用来修饰变量的
- 基本数据(primary type)类型:8个
byte, short ,int , long , float ,double ,boolean ,char
整数型:
byte short int long
1 2 4 8
-128~127 -2^15 ~ 2^15-1 -2^31 ~ 2^31-1 -2^63 ~ 2^63-1
long类型是可以有后缀的,如果存储的值在int类型范围以内,就省略后缀L
如果大于int就必须加L后缀
浮点型:
float double
4 8
float类型必须加f/F后缀
double类型可以加d/D,当值大小在float内可以省略
布尔型(boolean 1):
真 true / 假 false 默认值 是 false
字符型: char 2
语法: char 变量名 = '值'; 不可以空着'' ,但可以是' '
- 引用数据(reference type)类型:
区别:内存存储地址不同
语法:必须使用双引号 “内容”
String:字符串是字符的序列/集合
例如: String str = “a”;
类,接口,数组,枚举enum
垃圾:没有应用指向的内容就是垃圾
由 jvm 虚拟机中的 gc (garbage collection) 垃圾回收器
System.gc(); //通知 jvm 虚拟机 清理垃圾;
基本数据类型的转换:
int a = 32232;
byte b = a;
种类:
自然转换 / 隐式转换:从小到大的转换就是自然转换
强制转换:从大到小的转换就是强制转换
语法: int a = 128; byte b =(byte)a;
运算符:
算数运算符:
+ - * / %(取余,只要余数) / 除 (取商) ++自增 1 -- 自减1
如果++在变量的前面就先运算,如果++在变量的后面就先赋值
++在前先算后赋,++在后先赋值后运算
赋值运算符:
= 赋值用的 拓展赋值运算符 += ,-= ,*= , /=
比较运算符:
> < >= <= != 不等于 == 判断是否相等,运算结果只有boolean类型
逻辑运算符:
&、&&(短路) 与(and)
true && true 表达式结果是 true
true && false 表达式结果是 false
false && true 表达式结果是 false
false && false 表达式结果是 false
!取反 !(1==1&& 2==1) ! 非,放在表达式的最前面
|、||(短路) 或(or)
在表达式中为true表达式的结果为true都为false时结果false
||短路或如果左边为true右边不参与判断, 如果左边为false右边参与判断
^ 异或两边的表达式相同为false,不同为true
位运算:
进制: 2进制,10进制
10进制转2进制 除2取反向余数
2进制转10进制 底数*2^0~n次幂
&运算: 都为1时候结果为1,否则为0
|运算: 都为0时为0,否则都为1
^运算: 相同为0,不同为1
三元运算符:(三目运算符)
语法 : 布尔表达式 ? 结果1 : 结果2;
特点:
当布尔表达式结果为true时输出结果1
当布尔表达式结果为false时输出结果2
三目运算符可以适用于所有的数据类型
小写字母a完成用输出语句打印 A
char a = ‘a’;
char b=‘a’-32;
System.out.pritnln(b);
字符串的拼接: +
任何数据类型与字符串相加,结果都是字符串类型
流程控制语句:
- 条件语句: (分支语句)
单分支:
if语法:
if( 只可以放布尔类型 ){
//代码段…
}
原理: 当if语句中的布尔表达式为true时执行,当表达式的结果为false时代码段不执行
if语句是可以嵌套的
if( 布尔表达式 ){
if( 布尔表达式 ){
//代码段…
}
}
双分支:语法结构: 三目运算符一样
if( 布尔表达式 ){
//代码段1
}else{
//代码段2
}
当布尔表达式为true时执行代码段1,为false时执行代码段2
多分支:
if( 布尔表达式 ){
//代码段1
}else if( 布尔表达式 ){
//代码段2
}else if( 布尔表达式 ){
//代码段3
}else{
//代码段4
}
以上语句可以相互嵌套
switch语句
switch(不允许放boolean类型){
case 值:
代码段1 break;
…
default:
代码段n break;
}
注意:switch中只可以用 byte,short ,int ,String, char, enum(枚举) - 循环语句:
为了减少代码量并提高开发效率
我们可以通过循环来执行代码解决程序中需要重复做的事情
三个必要条件:
1)先找终止条件
2)定义初始化条件
3)迭代部分++ / - -
while( 必须放布尔类型){
//循环体
}
运行原理: ()中 只可以用布尔类型, 可以是 true,可以是表达式但不可以直接写 false,如果为真时会执行循环体, 否则不执行循环体
do{
//循环体
}while();
注意:
do…while(); 和 while的区别:
当小括号中的表达式为 true 时 两个循环的循环体执行次数相同
但表达式结果为 false 时, do…while();永远比 while 多执行一次
for( ; ; ){ 可以执行的死循环
//循环体
}
写法: for( 初始化值 ; 终止条件 ; 迭代部分 ){
//循环体
}