【Java自己老师上课day01】1-3Java语言基础

这篇博客介绍了Java语言的基础知识,包括面向过程和面向对象的概念,JDK版本,Java的技术体系和特点,以及Java的运行机制,特别是Java虚拟机的工作原理。此外,还详细讲解了Java的标识符、关键字、常量、变量、数据类型、运算符和程序控制语句,如if、switch、循环等。
摘要由CSDN通过智能技术生成

目录

1、Java语言概述(了解)

解释“面向过程语言”and“面向对象语言”

2、JDK版本

3、Java的技术体系

4、Java语言的特点

5、Java的运行机制(两种核心机制)

(1)Java虚拟机(Java是如何进行代码实现的?)

第一个开发程序

MyEclipse 的使用

6、标识符

7、关键字

 8、Java中的常量

9、Java中的变量

10、Java数据类型

(1)基本数据类型

布尔类型: Boolean

字符类型:char

浮点数类型:double

整数类型:int long short byte

数据类型转换

(2)引用类型

11、运算符

一元运算符

三元运算符  ?:

算数运算符

比较运算符

逻辑运算符

12、程序的控制语句

补充

选择语句   if 

选择语句 switch

循环语句while

for each 循环

跳转语句

break

continue

return

last:


1、Java语言概述(了解)

(1)第一代语言: 打孔机-纯机器语言    

--  实例:完成S=768+12288运算     机器码:10110000000000000000001  000001010000000000110000          (它不认识十进制,需要转换为二进制)

(2)第二代语言 :汇编   MOV AX,BX (程序)

(3)第三代语言 :Fortran 、C、Pascal面向过程的语言; C++面向过程/面向对象 ;JAVA跨平台纯面向对象的语言 ;.NET跨语言的平台

我们现在用的是第三代语言

解释“面向过程语言”and“面向对象语言”

面向对象 VS 面向过程   

【例子】:把大象放冰箱需要几步?

  1. 面向过程:如何把冰箱门打开,如何把大象装冰箱,如何把冰箱门关山上
  2. 面向对象:创造一个人,让这个人把冰箱门打开、把大象装冰箱、把冰箱门关山上(构造一个人对象,让这个人会三个方法)

面向过程是最基础的语言;面向对象是最流行的语言。

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值