NZ-JAVA01第一周
Day01
软件安装
开班
JDK8.0
配置了环境变量
- path里面配置了 jdk的bin目录
Dos命令
- cd
- dir
- cls
- java
- javac
- cd …
java 的历史
- 1996年发布jdk 1.0
- 1999年发布j2se,j2ee,j2me
- 2005年更名java se 、java EE、java ME
- 2009年被Oracle收购
- 2011年由oracle 发布java 7.0
- 2014年由oracle 发布java 8.0
java语言的特定
-
面向对象
使用计算机模拟现实世界,解决现实世界贴近人类思维模式
-
简单
相对于C,C++,C#,不易造成内存溢出、减少代码量、代码可读性强
-
跨平台
操作系统、服务器、数据库
第一个java程序
-
新建一个Demo.java的文件
-
helloword程序
public class Demo{
public static void main(String[] ra){
System.out.println(“hello word”);
}
}
Day02
名词解释
-
JVM 虚拟机
使用软件在不同操作系统中,模拟相同环境
-
JRE 运行环境
包含jvm 和解释器,完整的java运行环境
-
JDK 开发环境
包含jre +类库+开发工具包(编译器+调试工具)
类的阐述
- 同一个源文件中可以定义多个类
- 编译后,每个类都会生成一个独立的 .calss 文件
- 一个类中,只能有一个主函数,每个类都可以有自己的主函数
- public 修饰的类称为公开类,要求类名必须与文件名称完全相同,包含大小写
- 一个源文件中,只能有一个公开类
类的详解
- 类名的每个单词的首字母必须大写
- 一个类只能有一个main函数
包
package com.qianfeng.ls.test;
public class Test{
public static void main(String[] args){
System.out.println("test");
}
}
- 作用:类似于文件夹,用于管理字节码(.class)文件
- 语法:package 包名
- 位置:必须写在源文件的第一行
- 带包编译: javac -d . 源文件名称.java (自动生成目录结构)
- 带包运行: java 包名.类名 (包名+类名又称全限定名)
- 采用域名倒置的规则: www.baidu.com.cn ——》 cn.com,baidu.www
编码规范
-
层次之间必须缩进(Tab: 一个制表位(4个空格))
-
一行只写一句代码
-
注释
- 单行注释
- 多行注释
- 文档注释
书写格式
- 类名,每个单词的首字母都要大写
- 包名,尽量全部采用小写;公司域名的倒写
- 需要采用缩进;尽量一行只写一句代码
标识符命名
-
类名
-
包名
-
属性名
-
方法名
-
约定俗成
- 望文生义、见名知义
- 类名由一个或多个单词组成,每个单词首字母大写
- 函数名、变量名由一个或多个单词组成,首单词首字母小写,拼接词首字母
- 包名全小写,只可以使用特殊字符“.”, 并且不以“.”开头或结尾
- 常量全大写,多个单词用_连接
-
语法规定
Day03
数据的类型
-
基本数据类型
-
整型
-
int
- 4个字节
-
-
字节型
- 1个字节
-
短整型
-
short
- 2个字节
-
-
长整型
-
long
- 8个字节
-
-
浮点型
-
float
- 4字节
-
double
- 8字节
-
-
布尔型
- true
- false
-
字符
字符赋值 :char cl = ‘A’ 【通过‘’ 描述为字符赋值】
整数赋值: char c2 = 65; 【 通过十进制数65在字符集中对应的字符赋值】
进制赋值 : char c3 = ‘\u0041’; 【通过十六进制数41 在字符集中所对应的字符赋值】
-
char
- 2个字节
-
-
-
引用数据类型
-
字符串
- String
-
数组
-
对象
-
变量
-
概念
- 计算机内存中的一块存储空间,是存储数据的基本单元
-
变量的组成
- 数据类型
- 变量名
- 变量值
-
变量的定义流程
-
声明
数据类型 变量名;
int money ;//开辟整数变量空间 -
赋值
赋值;
变量名 = 值;
money = 100; //将整数值赋给变量注意:java 是强类型语言,变量的类型必须与数据的类型一致
-
方式
-
先声明,再赋值
数据类型 变量名;
变量名 = 值; -
声明并赋值
数据类型 变量名 = 值;
-
多个类型相同的声明与赋值
数据类型 变量1 ,变量2 ,变量2 =值3 ,值4, 值5 =值5;
-
-
-
变量值
转义字符
-
\n
- 换行符
-
\t
- 缩进(制表位)
-
\
- 反斜线
-
’
- 单引号
-
‘’
- 双引号
类型转换
-
由低到高自动转;由高到低强制转
-
规则
-
整数长度足够,数据完整
例子:
int i = 100; byte b =(byte)i; //b = 100 -
整数长度不够,数据截断
例子:
int i = 10000 ; byte b =(byte)i;
//b = 16 (符号位变化,可能变为负数) -
小数强转整数,数据截断
例子:
double d = 2.5; int i = (int)d;
//i =2(小数位舍掉) -
字符整数互转,数据完整
例子
char c = 65 ; int i = c;
// i=65 -
boolean的取值为true/false,不可与其他类型转换
-
-
自动类型提升
- 当两个操作数有一个为double,计算结果提示也升为double
- 如果操作数中没有double,有一个为float ,计算结果提升为float
- 如果操作数中没有float ,有一个为long ,计算结果提升为long
- 如果操作数中没有long ,有一个为int ,计算结果提升为int
- 如果操作数中没有int ,均为short或byte ,计算结果仍然提升为int
- 特殊:任何类型与String 相加实为拼接,其结果自动提升为String
-
运算符
-
算数运算符
- 加,求和
- 减、求差
- 乘、求积
/ 除、求商
% 模、求余
-
一元运算符(只有一个操作数)
- ++ 递增,变量值+1
- – 递减,变量 -1
-
赋值运算符
-
=
- 直接赋值
-
+=
- 求和后赋值
-
-=
- 求差后赋值
-
*=
- 求积后赋值
-
/=
- 求商后赋值
-
%=
- 求余后赋值
-
-
关系运算符:两个操作数进行比较
-
- 大于
-
<
- 小于
-
=
- 大于等于
-
<=
- 小于等于
-
==
- 等于
-
!=
- 不等于
-
-
逻辑运算符
-
&&
-
与(并且)
- 两个操作数,同时为真,结果为真
-
-
||
-
或(或者)
- 两个操作数、一个为真,结果为真
-
-
|
-
非(取反)
- 意为“不是‘,真即是假,假即是真
-
-
-
三目运算符:将判断后的结果赋值给变量
-
? :
-
语义
布尔表达式?结果1:结果2
-
描述
当表达式结果为真,获得结果1
当表达式结果为假,获得结果2
-
-
-
-
-
表达式
-
使用运算符连接的表量或字面值,并可以得到一个最终结果
例如
-
Day04
控制台录入
-
程序运行中,可在控制台(终端)手动;录入数据,再让程序继续运行
-
导包语法:import包名.类名;//将外部class文件功能引入到自身文件中
-
使用顺序
-
导入java.util.Scanner
-
声明Scanner类型的变量
-
使用Scanner类对应的函数(区分类型)
- nextInt(); //获得整数
- nextDouble();//获得小数
- next ();// 获得字符串
- .next()charAt(0);//获得单个字符
- 注:如果输入了不匹配的数据,这会产生java.util.InputMismatchException
-
-
-
Day05
选择分支结构
选择结构:
-
基本的if选择结构
-
语法
if(布尔表达式){
//代码块
}
后续代码
-
执行流程
- 对布尔表达式进行判断
- 结果为true ,则先执行代码块,再进执行后续代码
- 结果为false ,则跳出代码块,直接执行后续代码
-
-
if else 选择结构
-
语法
if(布尔表达式){
//代码块1
}else{
// 代码块2
}后续代码…
-
执行流程
- 对布尔表达式进行判断
- 结果为true,则先执行代码块1,再退出整个结构,执行后续代码
- 结果为false ,则先执行代码块2,再退出整个结构,执行后续代码
-
-
多重if 选择结构
-
语法
if(布尔表达式子1){
//代码块1}else if(布尔表达式2){
//代码块2
}else if (布尔表达式3){
//代码块3
}else{
//代码块4
} -
执行流程
- 表达式1为true,则执行代码块1,再退出整个结构
- 表达式2为true,则执行代码块2,再退出整个结构
- 表达式3为true,则执行代码3,再退出整个结构
- 以上均为false ,则执行代码块4,其他均不再执行
- 注意:相互排斥,有一个为true,其他均不再执行。使用于区间判断
-
-
嵌套if 选择结构
-
语法
if(外层表达式){
if(内层表达式){
//内层代码块1}else{
//内层代码块2
}}else {
//外层代码块
}
-
执行流程
- 当外层条件满足时,再判断内层条件
- 注意:一个选择结构中,可嵌套另一个选择结构
- 嵌套格式正确的情况下,支持任意组合
-
-
switch分支结构
package demo;
import java.util.Scanner;public class TestSwitch{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println(“请输入整数:”);
int choice = input.nextInt();
switch(choice){
case 1: System.out.println(“北京考鸭”);
case 2:System.out.println(“过桥米线”);
case 3: System.out.println(“麻辣香锅”);}
}
}
-
语法
switch(变量|表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;}
-
可判断的类型
byte 、short、int 、char、String(jdk7+)
-
执行流程
- 如果变量中的值等于值1,则执行逻辑代码1
- 如果变量中的值等于值2,则执行逻辑代码2
- 如果变量中的值等于值n,则执行逻辑代码n
- 如果变量中的值没有匹配的case值,执行default中的逻辑代码
- 注意:所有case的取值不可相同
-
note
- 当匹配的case被执行后,并不会自动退出整个结构,而继续向下执行
- break 关键字可以在匹配的case执行后,直接跳出整个结构
-
-
局部变量
- 概念:声明在函数内部的变量,必须先赋值再使用。
- 作用范围:定义性开始到所在的代码块结束
- 注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)
- 声明在函数内部的变量,必须先赋值再使用
-
选择结构的概念:根据已知条件进行逻辑判断。满足条件后执行相应操作