目录
1、Java语言概述(了解)
(1)第一代语言: 打孔机-纯机器语言
-- 实例:完成S=768+12288运算 机器码:10110000000000000000001 000001010000000000110000 (它不认识十进制,需要转换为二进制)
(2)第二代语言 :汇编 MOV AX,BX (程序)
(3)第三代语言 :Fortran 、C、Pascal面向过程的语言; C++面向过程/面向对象 ;JAVA跨平台纯面向对象的语言 ;.NET跨语言的平台
(我们现在用的是第三代语言)
解释“面向过程语言”and“面向对象语言”
面向对象 VS 面向过程
【例子】:把大象放冰箱需要几步?
- 面向过程:如何把冰箱门打开,如何把大象装冰箱,如何把冰箱门关山上
- 面向对象:创造一个人,让这个人把冰箱门打开、把大象装冰箱、把冰箱门关山上(构造一个人对象,让这个人会三个方法)
面向过程是最基础的语言;面向对象是最流行的语言。
2、JDK版本
(1)只有Java运行不了,需要由Java的运行环境JDK
(2)1.0:有212个类和8个包,奠定语法和基础
……
1.5:3562类和166个包
(类和包是干什么的,后面说,包在类里面,包里面有方法)
包:相当于统一的文件夹;
为什么老师或同学的代码放自己这里就报错?有可能就是JDK版本不一样,人家有的类你没有,你的JDK版本太低
3、Java的技术体系
- J2SE:主要用于桌面应用程序的开发
- J2EE:主要是用于网络程序和企业应用开发(最常用的)
- J2ME:主要用于手持设备
4、Java语言的特点
- 面向对象的语言
- 与平台无关的语言(Java的平台就是操作系统:window、Linux;与平台无关:哪个平台都行,在window操作系统下可以实现;在Linux操作系统下也可以实现)
- 健壮的语言(吸收了C/C++的特点,释放了指针等)
5、Java的运行机制(两种核心机制)
(1)Java虚拟机(Java是如何进行代码实现的?)
过程:新建一个文本文档,修改后缀名为java(此时程序员也就是我们自己认识,但是计算机不认识)--> 通过Java编译器(也就是JDK)-->编译成字节码文件(也就是class文件,class文件才是计算机认识的语言)-->类装载器-->字节码校验器-->解释器-->操作系统平台
package com.inspur.test;
public class student {
public static void main(String [] args){
System.out.println("hello student");
}
}
package:包:相当于文件夹
public:公共的
class:类(类名必须与文件名一致,不能随意更改)
static:静态的
void:无返回值
main函数是程序的主方法;是入口
第一个开发程序
(1)要有JDK,下载并安装,直接下一步下一步就OK
(2)还需要配置Java的运行环境(JDK)
(3) 配置完成,检验是否配置成功:cmd--输入Java
MyEclipse 的使用
(1)新建一个Java文件:file--new--Java project--取一个项目名--在src里面新建一个class文件(写一个包名,一个类名)--出现了一个Java文件
(2)我自己的源码位置:在和MyEclipse一级的Workspaces文件夹里面
(2)垃圾收集机制
6、标识符
(1)标识符:就是起名字(例如:给自己起名字)
(2)命名规则:就是起名字的规则(自己的名字长度啥的是有限制的)
①第一个字符:必须是字母,下划线,美元符号(开头不能是数字);中间不能有空格;后面可以是字母、下划线、美元符、数字。
②标识符不能与关键字重复
③标识符大小写敏感,也就是a和A是两个不同的标识符,长度无限制
④标识符驼峰命名(要有意义)
7、关键字
关键字又称为保留字:常见的关键字
8、Java中的常量
常量:就是不能变化的量
final关键字:表示常量;常量是一个不能再次更改的量;常量只能赋一次值,多次赋值会报错
9、Java中的变量
(1)变量在使用前要先声明在赋值
(2)变量的三要素:变量名、变量类型、作用域
(3)变量作用域:指明可访问该变量的一段代码,声明一个变量的同时也就指明了变量的作用域。
(4)按作用域来分:
①局部变量 局部变量在方法或方法的一个块代码中声明,它的作用域为所在的代码块(整个方法或方法中的某块代码)。
②成员变量(全局) 方法外部、类的内部定义的变量
//成员变量VS局部变量
public void study(){
int score=98;//在某个方法里面声明的变量叫做局部变量
for(int i=0;i<=10;i++){//在方法的代码块中声明的变量也叫做局部变量
System.out.println(i);
}
System.out.println("该学生成绩为:"+score);
}
//在所有方法之外,类里面声明的变量是全局变量--成员变量
10、Java数据类型
Java中的数据类型分为基本数据类型and引用数据类型
(1)基本数据类型
布尔类型: Boolean
取值只有true和false;一般用来判断(for循环,if语句等)
public static void main(String [] args){
//声明一个布尔类型的值
boolean bool=true;//布尔类型只能是true或者是false
if(bool){//如果bool为真,进入循环
System.out.println("bool is true");
}else {
System.out.println("bool is false");
}
}
字符类型:char
(1)字符类型有几个注意事项
/*
* 字符类型注意事项
* 1、字符类型需要放在单引号内
* 2、字符类型有且只有一个字符(为什么只能有一个字符?因为字符可以转换成ASCII码)
* 3、字符类型可以为数字,但是范围是0--65535
*/
char c =2;
char a='a';
char b='h';
System.out.println(a);
System.out.println(b);
System.out.println(c);
浮点数类型:double
(就是我们通常说的小数)
double与float的区别:
double范围大,后面不加f,表示double类型的。
public static void main(String [] args){
//浮点数类型:小数
double num1=0.123;
float num2=1.23f;
//不加f会报错,因为double范围大,不加f表示double类型
System.out.println(num1);
System.out.println(num2);
}
整数类型:int long short byte
(区别就是范围不同)
byte b1=127;//范围是-128到127
short b2=12345;
int i=123;
long b3=1234567;
//类型转换从低到高
数据类型转换
(1)自动类型转换:由小范围到大范围转换的时候
(通俗理解:假设你去买饮料,一瓶饮料4.8元,你给5元后扭头就走,商贩没有意见--自动类型转换,假设你给4元,他就有意见了,此时你需要去磨嘴皮子,讲道理,砍价,才OK--强制类型转换)
(2)强制类型转换
不同类型数据间的优先关系如下:
低------------------------------------->高 byte,short,char-> int -> long -> float -> doubl
//数据类型转换
double a=3.1;
int a1=(int)a;
//如果不加强制类型转换的话,就会导致数据丢失
(2)引用类型
11、运算符
(1)什么是运算符?表示各种不同运算符号的
(2)按操作数的数目分:
一元运算符:++ --; 二元运算符:+ - > < =; 三元运算符:?:
一元运算符
//一元运算符:++、--
int x=1;
int y=x++;
//x++:是先赋值,后运算;x++等价于x=x+1
//++x:是先运算,后赋值;++x等于x=x+1
System.out.println("x="+x);//x=2
System.out.println("y="+y);//y=1
System.out.println("---------");
int z=++x;
System.out.println("x="+x);//3
System.out.println("z="+z);//2
System.out.println("---------");
三元运算符 ?:
//2、三元运算符: ?:
int a=30,b=40;
if(a>b){//方式一
System.out.println("a="+a);
}else {
System.out.println("b="+b);
}
int max;
if(a>b){//方式二
max=a;
}else {
max=b;
}
System.out.println("max="+max);
//方式三(?表示是否)
int max1 =(a>b)?a:b;
System.out.println("max1="+max);
算数运算符
比较运算符
逻辑运算符
/*
* 3、算数运算符:+ / %
* + :①当加号左右两边的操作数都为数字时,就进行加法运算
* ②当加号左右两边的操作数有一个为字符串的时候,就进行字符串达到连接
*/
System.out.println(10+20);//30
System.out.println("a="+5);//a=5
System.out.println("10"+20);//1020
//除运算:整数与整数相除时,结果只保留商的整数部分,除数不能为0
System.out.println("a/b="+(a/b));
//% 取余数部分
System.out.println("a%b="+(a%b));
System.out.println("---------");
//比较运算符
//==:是否等于(当等于时结果为true,不等于时为false)
System.out.println("a==b:"+(a==b));
//!=:是否不等于(当不等于时结果为true,等于时为false)
System.out.println("a!=b:"+(a!=b));
//逻辑运算符:或与非 || and !
//||同时为假才为假,否则就为真
// && 并且:同时为真才为真,否则就为假
System.out.println((4>5)||(7<9));//true ||:有一个成立就行
System.out.println((4>5)&&(7<9));//false
//| 同时为假才为假,否则就为真(当第一个结果为真时,不去判断第二个结果)
// &&并且:同时为真才为真,否则就为假(当第一个结果为假时,不去判断第二个结果)
System.out.println((4>5)|(7<9));
System.out.println((4>5)&(7<9));
// !(非):真的变为假的,假的变为真的
System.out.println(!(4>5));
12、程序的控制语句
补充
(1)程序控制语句:程序是从上到下依次执行的,执行过程中会分流,根据不同的条件执行不同的语句(又称为循环控制语句)
(2)选择语句包括两个,分别是if语句and switch 语句
(3)if语句的三种语法
--if(条件){代码块}
-- if(条件) {代码块} else {代码块}
--if (条件) {代码块} else if {代码块} else if {代码块}
选择语句 if
声明一个double类型的成绩,成绩为78,如果成绩大于等于60,打印输出“恭喜你及格了”否则输出“很遗憾挂科了
public static void main(String[] args) {
//什么是代码块?代码块是由左花括号开始右花括号结束,一并统称为代码块
double score=78;
//if后面括号里的结果为真true,则执行后面的代码块
//如果if后面的代码块不执行,则执行后面else的代码块
if(score>=60){//if后面是真的
System.out.println("恭喜您,及格了!");
}else {
System.out.println("很遗憾,挂科了!");
}
/*
* 方式1:if()
* 2、if()else()
* 3、if()else if()else if()……
*/
if (score>=90){
System.out.println("A");
}else if (score>80) {
System.out.println("B");
}else if (score>70) {
System.out.println("C");
}else if (score>60) {
System.out.println("D");
}
小练习:if语句的嵌套使用,来比较三个数的大小
//if语句的嵌套使用,来比较三个数的大小
int a=34,b=45,c=25;
int max;
if (a>b) {
if (a>c) {
max=a;
}else {
max=c;
}
}
else {//就是b>a
if (c>b) {
max=c;
}else {
max=b;
}
}
System.out.println("三个数的最大值是:"+max);
选择语句 switch
(1)switch后面的表达式只能是4种类型:分别是int short byte char
(2)switch的语法结构是
int a;
switch(a){
case 常量:
语句;
break;
case 常量:
语句;
break;
default :
语句;
}
package com.inspur.test;
/*
* switch语句的练习
*/
public class switch01 {
public static void main(String[] args) {
int a=31;
switch(a){
case 21:
System.out.println(21);
break;
case 41:
System.out.println(41);
break;
case 71:
System.out.println(71);
break;
default:
System.out.println("输入的数字没有找到");
}
}
}
迭代(循环)语句 for循环
(1)for循环包括4部分:分别是初始化语句;循环条件;循环体;循环
(2)练习:
- - 打印0-9的整数
- - 打印0-100的偶数
- - 打印0-100的奇数
- - 打印直角三角形
- - 打印九九乘法表
package com.inspur.test;
/*
* for循环
*/
public class for01 {
public static void main(String[] args) {
// for循环打印0-9的整数
for(int i=0;i<=9;i++){
System.out.print(i+" ");
}
System.out.println();
// for循环打印0-100的偶数
for(int i=0;i<=100;i++){
if(i%2==0){
System.out.print(i+" ");
}
}
System.out.println();
// for循环0-100的奇数
for(int i=0;i<=100;i++){
if(i%2!=0){
System.out.print(i+" ");
}
}
System.out.println();
// for循环的嵌套来打印直角三角形
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j);
}
System.out.println();
}
// for循环来打印九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j)+" ");
}
System.out.println();
}
}
}
循环语句while
while循环的语法结构:
初始化条件;
while(循环条件){
语句;
累加;}
package com.inspur.test;
/*
* while循环和do while循环练习
*/
public class while01 {
public static void main(String[] args) {
// while循环:打印0-9的整数
int i=0;
while(i<=9){
System.out.print(i+" ");
i++;
}
System.out.println();
// do while循环:打印0-9的整数
int j=0;
do {
System.out.print(j+" ");
j++;
} while (j<=9);
System.out.println();
}
}
小练习:
/*
* 模拟登陆:假设用户名为admin,密码123456
* 1、用户输入用户名和密码,点击确定按钮可以登录
* 2、如果正确则提示登录成功
* 3、否则登录失败,提示错误信息
*/
package com.inspur.test;
import java.util.Scanner;
public class xunhuantest02 {
public static void main(String[] args) {
/*
* 模拟登陆:假设用户名为admin,密码123456
* 1、用户输入用户名和密码,点击确定按钮可以登录
* 2、如果正确则提示登录成功
* 3、否则登录失败,提示错误信息
*/
Scanner scanner=new Scanner(System.in);
System.out.println("请输入用户名:");
String username=scanner.next();
System.out.println("请输入密码:");
String password=scanner.next();
if ("admin".equals(username)&&"123456".equals(password)) {
System.out.println("登陆成功");
}else {
System.out.println("用户名和密码错误");
}
}
}
for each 循环
主要是针对集合和数组的
语法结构:for( int x:arr){}
//for each循环:主要是针对集合和数组
int arr[]={1,2,3,4,5,6,7,8,9};
for(int x:arr){//把数组中的值一次赋值给x
System.out.print(x);
}
跳转语句
break
continue
return
//跳转语句:break语句、continue语句、return语句
System.out.println("break打印0-10的整数");
//break:结束本次循环
//return:结束所有内容
for (int i = 0; i <=10; i++) {
if (i==5) {
break;//如果i=5跳出本次循环
}
System.out.print(i+" ");
}
System.out.println();
//continue:只结束当前循环,不影响下次循环
System.out.println("continue打印0-10的整数");
for (int i = 0; i <=10; i++) {
if (i==5) {
continue;
}
System.out.print(i+" ");
}
System.out.println();
//return:结束所有内容;return后面的代码无效
System.out.println("return打印0-10的整数");
for (int i = 0; i <=10; i++) {
if (i==5) {
return;
}
System.out.print(i+" ");
}
System.out.println();
last:
(1)解释:什么是面向过程?什么是面向对象?
(2)JDK是什么?为什么别人的代码放到自己这里会出现错误?
(3)Java运行机制--Java虚拟机
(4)编写第一个开发程序,并解释各含义?
(5)Java标识符的命名规范?
(6)Java中的常量如何定义?变量如何定义?变量分为?变量的三要素?
(7)一元运算符:++、--?理解y=x++中y=几?y=++x中y等于几
(8)三元运算符:解释int max1 =(a>b)?a:b;的含义?
(9)程序控制语句:选择语句if、switch;循环语句for、while、do while、for each;跳转语句:break、continue、return;