20161114(1)上午
Java:
JavaSE: 第一个月学习(Java的基础)J2SE
javaME:基本不用
javaEE:第二个月学习(web开发)J2EE
Java是由SUN开发 目前属于Oracle公司
Eclipse由IBM公司
进行java开发需要的准备
1. JDK(java开发环境) 已经写好的Java代码
2. JRE(java运行环境)就是运行Java的环境
3. IDE(集成开发环境-开发工具)
安装工具
1. 先安装JDK(默认安装)
2. 配置环境变量
1)配置 path:C:\Program Files\Java\jdk1.7.0_67\bin
2)配置JAVA_HOME:C:\Program Files\Java\jdk1.7.0_67
基于控制台的第一个java程序
1. 创建一个.java为后缀名的文件
2. 在文件中编写java代码。
3. 使用编译命令javac 文件名.Java
4. 使用执行命令java 文件名
Java执行的不是二进制文件,java执行的是字节码文件(.class文件)
Java框架代码:
public classmyJava(类名){
public static void main(String args[]){
System.out.println("hello,world");
//java 逻辑代码
}
}
类名必须和创建的文件名保持一致(大小写都必须一样)
System.out.println(”内容”);//向控制台输出指定内容
Public staticvoid main(String args[]);固定主函数代码,是java程序入口
Java程序执行的流程;从上向下,逐行执行,每行代码都需要使用结束
使用Eclipse开发:
1. 创建java project(java项目)
2. 在java项目中创建java文件(类文件)
3. 编写java框架文件(也可以自动生成)
System.out.println("");
System.out.print("");
Print 打印后面加ln 表示下一行换行,没有表示下一行不换行
练习:
创建一个FirstDemo项目,在项目中有一个名称Text的java类文件,文件中编程在控制台:
姓名:xxxxxx
年龄:xxx
性别:xxxxxx
电话:xxxxxxx
20161114(1)下午
Java变量
变量:可以变化的量(数据),用于存储数据
使用变量的步骤:
1. 定义变量
语法:数据类型 变量名;
2. 给变量赋值
语法:变量名 = 值;
一般使用变量都是直接定义并且赋值:
数据类型 变量名 = 值;
变量在使用前必须赋值 (初始化:给变量赋值)
Java的数据类型: 分为两大类 1.数据基本类型(原生数据类型)2.引用数据类型(对象类型)
基本数据类型 : 一共有8个
数据类型: 4个
long : 长整型 8byte
int: 整型 4字节
short :短整型 2字节
byte: 字节型 1byte 256 -128---127
小数: 2个
double : 双精度浮点型 8个字节 1.2323
计算机中double类型不会完全相等,只会近似相等
float: 单精度浮点型 4个字节
字符:1个
char : 字符型, 该类型修饰的变量存储的值必须用‘’(单引号)包含并且是一个值,如‘男’,‘A’
布尔型: 1个
Boolean: 布尔类型,该类型只有两个值 true和false
应用数据类型:
String: 字符串 该类型修饰变量储存的值必须使用“”(双引号),eg:“hello ”
Bit(位) 0,1
1byte = 8bit
1024byte = 1kb
1024kb = 1mb
计算机中的所有整数值默认是int类型,所有的小数值默认是double,不同类型的值不能直接赋值给不同类型的变量,必须通过数据类型转换,整形类型的变量中只要不超出变量范围,可以赋值
类型转换:
1. 自动转换:小范围可以直接赋值给大范围,大范围必须强制转换才能赋值给小范围
2. 强制转换: 数据类型 变量名 = (数据类型)值; 将值 转换为指定的数据类型
如果想要将一个小数直接赋值给float变量,还可以采用预格式处理
eg: float 变量名=值f;
java中的运算符:
1. 算术运算符 : + - * / %(取模)
如果使用变量进行运算,计算结果的数据类型就是参与运算中的变量中的最大数据类型,如果都是int类型,计算结果就是int类型。哪怕结果应该是小数,小数也会直接取整(获取整数部分)
%的结果的正负号和被除数相同
如果是数字之间的+表示求和,如果是字符和数字之间的+ 表示拼接
eg:
int age= 20;
System.out.println("年龄:"+age);
2. 赋值运算符:
=:赋值,将右边的值赋给左边的变量
+=:累加赋值
int num = 5;
num += 3;//num = num + 3;
*=,-*,/=,%=
++ : 自增1
Int num =5;
++num : 表示使用前加1
Num++:表示使用后加1
--:自减1
3.逻辑运算符: 运算的结果都是BOOLEAN(布尔)类型;
> ,< , >=, <=, !=, ==
计算机中=表示赋值, == 才表示数学当中的“=”
条件运算符: 运算的结果都是boolean类型的值
&& || !(且 或 非)
计算机当中的运算一般都是从左向右计算,先算()里面的
三元表达式:
语法:条件表达式?表达式1:表达式2;
判断条件表达式是否为true,如果为true就返回表达式1的值,如果为false就返回表达式2的值
Eg:
//有两个整数,判断其中最大值?
inta = 6;
intb = 15;
intmax;//存储两个数的最大值
max = a > b ? a : b;
System.out.println(max);
Java文件命名规则:
文件名的首字母都大写,多个单词每个单词的首字母都大写
变量命名规则:
不能以数字开头,单个单词字母全小写,多个单词从第二个单词开始首字母大写,后面可以跟数字或$以及 “_” (下划线)。同时,不能是关键字(已经存在有意义的单词)
代码在运算符或者其他符号前后最好有空格,代码有合理的缩进
Java中编写代码时,尽量多的使用注释:
Java中的注释有三种:
1.单行注释: //注释文本
2.多行注释: /*
多行注释文本
*/
3.文档注释: 一般在类名上一行
/**
文档注释文本
*/
2016-11-15(2)上午
“\”表示转义的意思, eg: \”表示普通文本的“
包的命名:作用是整理Java文件
包中的Java文件夹上必须声明所在包
Eg:package javaDemo1;
包可以提高代码管理,方便查找,解决同名文件,
计算机中类文件名和变量名都不能重名
导入包: 语法: import 包名.文件名
Import 包名.* //表示导入所有文件
接收用户输入步骤:
1. 在文件的最上面导入scanner文件: import java.util.Scanner;
2. 在主函数中创建Scanner对象: Scanner input =new Scanner(System.in);
3. 使用Scanner文件中函数获取用户输入的数据 : input.函数名();
常用获取数据函数:
input.next():获取字符串输入
input.nextInt():获取整数值输入
input.nextDouble():获取小数值输入
input.next().charAt(0):获取字符值输入
java 中的流程控制语句
分支语句:
1.
if(条件表达式){
//条件表达式为true时执行的代码
}
2.
if(条件表达式){
//条件表达式为true时执行的代码
}else{
//条件表达式为false时执行的代码
}
3.
if(条件表达式1){
//条件表达式1为true时执行的代码
}else if(条件表达式2){
//条件表达式2为true时执行的代码
} else if(条件表达式3){
//条件表达式3为true时执行的代码
}else{
//前面所有表达式都为false时执行的代码
}
if…else if… 和多个if的区别:
if…else if… 判断从第一个条件开始遇到条件为true时就执行其后的大括号中的代码。
Switch…case…结构:
Switch(表达式){
case 常量值1:
//表达式与常量值1相等时执行的代码
break;
case 常量值2:
//表达式与常量值2相等时执行的代码
break;
case 常量值3:
//表达式与常量值3相等时执行的代码
break;
…………..
default:
//前面所有的常量值都不相等时执行的代码
}
首先获取表达式的值,然后依次和下面case后面的常量值进行比较,遇到相等时就执行case后面的代码,然后执行break跳出整个结构,如果case后面的值没有一个表达式相等就直接执行default后面的代码。
常量:不可变的数据
在switch中表达式的数据类型有限制: JDK1.7时只能有四种类型 int char byte short ; JDK1.8后新增String类型 ;
2016-11-15(2)下午
Break省略问题: 没有遇到break继续执行下一个case,遇到break就跳出整个结构。
循环结构:用于完成重复的操
开始条件 结束条件 循环条件
While 循环
While(循环条件){
//循环条件为true时执行的循环操作
}
首先判断循环条件是否为真,如果为真就执行大括号中的代码,然后返回继续判断循环条件,重复前面操作,直到判断时条件为FALSE则跳出循环。
do..while循环
do{
//语句
}while(循环条件)
while和do…while的区别:
一个是先判断在执行,一个是先执行再判断。
如果循环条件一开始就为false时while一次都不执行,而do…while至少执行一次
for循环:主要用于完成固定次数的循环,同时也用于遍历集合
for(初始条件;循环条件;步进){
//循环操作
}
执行流程完全和while循环一样
循环中的关键字:
break:再循环中遇到会结束整个循环
continue:在循环中遇到会跳过本次循环执行下一次循环
2016-11-16(3)上午
讲练习题
2016-11-16(3)下午
循环嵌套:
外部循环执行一次,内部循环执行一轮
*
**
***
****
*****
伪代码如下:
for (inti = 1; i <=5;i++) {
for (intj = 0; j <i; j++) {
System.out.print("*");
}
System.out.println(" ");
}
*
**
***
****
*****
伪代码如下:
for (inti = 1; i <= 5; i++) {
for (int j = 0; j < (5 - i); j++){
System.out.print(" ");
}
for (int j = 0; j <i; j++) {
System.out.print("*");
}
System.out.println();
}
*
**
***
****
*****
****
***
**
*
伪代码如下:
for (inti = 1; i <=5; i++) {
for (intj = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
for (inti = 1; i <=5; i++) {
for (intj = 0; j <(5-i); j++) {
System.out.print("*");
}
System.out.println();
}
*
**
***
****
*****
****
***
**
*
伪代码如下:
for (inti = 1; i <=5; i++) {
for (intj = 0; j < i; j++) {
System.out.print(" ");
}
for (intj = 0; j <(5-i); j++) {
System.out.print("*");
}
System.out.println();
}
计算机重要的特性:重用性、安全性、粘连性(耦合度),封装性(隐藏性)
函数:定义在java类中的具有特定功能的代码块,函数也称方法
作用:提高代码的重用性
函数特点:只有在调用函数时,才会执行函数代码,不能在函数中定义函数
函数语法:
访问修饰符函数返回值类型函数名(参数列表){
//函数代码块
Return函数返回值;
}
Eg:
publicstaticvoid main(String[] args) {
}
Public :表示共有的,不同访问修饰可以限制函数调用的范围
Static:静态的
1. 在主函数中调用其他函数都必须由public static修饰的函数
2. 函数返回值的类型分为两种情况:
(1).如果函数执行完返回结果,在代码的最后一行必须使用return返回值,该返回值的数据类型就是定义函数值的返回值类型。
(2.)如果函数执行完不要返回结果,那么函数最后一行的return可以省略,那么定义时函数返回值类型就为void
3.函数名是自定义的,命名约束遵循变量名约定
4.参数:参与函数执行过程的数据,函数中参数分为形式参数(简称形参)和实际参数(实参)
形参:方法定义时的参数,形参就是变量,用于存储调用函数时传递给函数的实际参数
定义形参的语法:数据类型1参数名1,数据类型2参数名2….
实参:是函数调用的参数,实参必须是一个实际的值(或者是能够获取到实际值的变量及代码)
实参列表语法:值1值2,。。。
函数调用的语法:
调用端.函数名(实参列表):如果是在同一个类中,函数之间的互相调用,可以省略调用端
尽量保证函数的完整性
实参列表必须和形参列表保持一致(顺序一致,类型一致,数量一致)