逆袭小白java成长之路

学习目标:

一周掌握 Java 基础知识


学习内容:

1、 搭建 Java 开发环境
2、 掌握 Java 基本语法
3、 掌握条件语句
4、 掌握循环语句
5 , 数组的定义和访问


学习时间:

1、 周一至周五晚上 7 点—晚上10点


学习产出:

java的预备知识

  • Java 语言是简单的:
    Java 语言的语法与 C 语言和 C++ 语言很接近

  • Java 语言是面向对象的:
    Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之 间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

  • Java语言是分布式的:
    Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

  • Java 语言是健壮的:
    Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。

  • Java语言是安全的:
    Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。

  • Java 语言是体系结构中立的:

    Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

  • Java 语言是可移植的:

    这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。

  • Java 语言是解释型的:

    如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

  • Java 是高性能的:
    与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。

  • Java 语言是多线程的:

    在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。

  • Java 语言是动态的:

    Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
    编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们
    所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
    运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。

一 术语

  • JDK(Java Development Kit ):编写Java程序的程序员使用的软件
  • JRE(Java RuntimeEnvironment):运行Java程序的用户使用的软件
  • Server JRE (Java SE RuntimeEnvironment):服务端使用的 Java 运行环境
  • SDK(Software Development
    Kit):软件开发工具包,在Java中用于描述1998年~2006年之间的
  • JDK DAO(Data AccessObject):数据访问接口,数据访问,顾名思义就是与数据库打交道
  • MVC(Model View
    Controller):模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用

二 jdk ,jde

JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
在这里插入图片描述

java开发过程

在这里插入图片描述
我们在idea中编写一下代码,主要文件名必须和类名一致
HelloWorld .java

public class HelloWorld { 
	public static void main(String[] args) { 	
 		System.out.println("Hello World!"); 
 	} 
 }

main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多 少程序,JVM在运行的时候,都会从main方法这里开始执行。

接着我们使用 javac编译成jvm 可执行的字节码文件
在这里插入图片描述
在这里插入图片描述
当然了,我们也可以直接运行
在这里插入图片描述

编译和运行是两回事 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。

三 变量和常量

常量

指,不可变是数据,存放在静态资源区(常量区)
在这里插入图片描述


public static void main(String[] args){ 
		System.out.println(123); //整数
		System.out.println(0.125); //浮点数
		System.out.println('A'); //字符
		System.out.println(true); //布尔值
		System.out.println("Java"); //字符串常量
}

变量

开发者创建的数据,一般存储在栈中

public static void main(String[] args){
		byte b =100;  //定义字节变量
		System.out.println(b);
		
		short s = 100; //短整数
		System.out.println(s);
		
		int i = 1234;
		System.out.println(i);
		
		long l = 123412314L;
		System.out.println(l);
		
		float f = 1.2f;
		System.out.println(f);
		
		double d = 4.4;
		double d1 = 1.3f;
		System.out.println(d);
		System.out.println(d1);
		
		//定义布尔型变量 
		boolean bool = false; 
		System.out.println(bool); 
		//定义字符型变量 
		char c = 'A'; 
		System.out.println(c);		
	}

四 数据类型

Java的数据类型分为两大类: 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。 引用数据类型:包括 类 、 数组 、 接口 。

以下为基本数据类型
在这里插入图片描述

自动转化

自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型

int i = 1; 
byte b = 2;
int c = i + b;
System.out.println(c);

运算结果,变量c的类型将是 int 类型
这里int是4个字节, b是一个字节, 转后的c也必须是4个字节

转换规则: byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

强制转换

不允许类型宽变窄

int i = 1.5; // error
int i = (float)1.5; // double类型数据强制转成int类型,直接去掉小数点。

五 运算符

一些常用的运算符
在这里插入图片描述
++ 运算,变量自己增长1。反之, – 运算,变量自己减少1,用法与 ++ 一致。

++ 运算符和 += 运算符效果一致,有可能会出现内存地址不同的情况
变量 前++ :例如 ++i 。 变量 后++ :例如 i++ 。

遇到字符是拼接

System.out.println("5+5="+ 5 + 5);//输出5+5=55 

后面会提到基本类型转字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三元运算符(三元表达式)

格式: 数据类型 变量名 = 布尔类型表达式?结果1:结果2

int i = (1==2 ? 100 : 200); 
System.out.println(i);//200 

六 函数(方法)

格式: 修饰符 返回值类型 方法名 (参数列表){ 代码… return ; }

public void methodName() { 
	System.out.println("这是一个方法"); 
}

我们所定义的main方法就是一个静态方法静态方法不能直接调用成员方法, 可以在成员方法前面 static修饰符 public static void methodName() {};

方法定义注意事项:

  1. 方法必须定义在一类中方法外
  2. 方法不能定义在另一个方法的里面

七 JShell脚本工具

JShell脚本工具是JDK9的新特性,可以帮助我们遇到一些小问题时,使用较少代码调试
使用方法, 在dos 中输入 jshell
在这里插入图片描述

八 流程控制

if

if语句第一种格式:

if(关系表达式){ 语句体;
  1. if 执行流程首先判断关系表达式看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体在这里插入图片描述
int a = 10; int b = 20; //变量使用if判断 
if (a == b){ 
	System.out.println("a等于b"); 
}
// 结果为空,判断为false

if语句第二种格式:

if(关系表达式) { 
	语句体1; 
}else { 
	语句体2; 
}

if…else 执行流程首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句体2
在这里插入图片描述

int a = 10; int b = 20; //变量使用if判断 
if (a == b){ 
	System.out.println("a等于b"); 
} else{
	System.out.println("a不等于b"); 
}
// a不等于b

if语句第三种格式:

if…else if …else 执行流程首先判断关系表达式1看其结果是true还是false 如果是true就执行语句体1 如果是false就继续判断关系表达式2看其结果是true还是false 如果是true就执行语句体2 如果是false就继续判断关系表达式…看其结果是true还是false …如果没有任何关系表达式为true,就执行语句体n+1。
在这里插入图片描述

int a = 10;
int b = 20;
if(a>=b){
	System.out.println("a>=b");
}else if (a==10){
	System.out.println("a=10);
}else {
	System.out.println(a);
// a=10

注意,所有格式中无论有几个条件(else),其结果都只会运行一次,如果存在多个符合条件的,则优先执行最近的一个else

switch

switch(表达式) { 
	case 常量值1: 语句体1; break; 
	case 常量值2: 语句体2; break; 
	... default: 语句体n+1; break; 
	}

执行流程首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
在这里插入图片描述

int a = 10;
switch(a){
	case 10:
		System.out.println("a大于10");
	case 10:
		System.out.println("a等于1");
		break;
	case 100:
		System.out.println("a小与100");
	
}
//a大于10
//a等于1

case的穿透性,如果一个case中没有break结束循环条件,将会继续忘下执行,直到遇到了一个break,或者结束语句

for

for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ }

执行流程执行顺序:①②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化 ②负责判断是否满足循环条件,不满足则跳出循环 ③具体执行的语句 ④循环后,循环条件所涉及变量的变化情况
在这里插入图片描述

for(int x = 0; x < 10; x++) { 
	System.out.println("HelloWorld"+x); 
}
// HelloWorld1
//HelloWorld2
//.......
//HelloWorld9

while

执行流程执行顺序:①②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句。 ④循环后,循环变量的变化情况

初始化表达式① 
while(布尔表达式②){ 循环体③ 步进表达式④ }

在这里插入图片描述

int i = 1; //循环条件<=10 
while(i<=10){ 
	System.out.println("HelloWorld"); 
	//步进 
	i++; 
}

do…while

初始化表达式① 
do{ 
	循环体③ 步进表达式④ 
}while(布尔表达式②);

do…while循环格式 执行流程执行顺序:①③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句 ④循环后,循环变量的变化情况
在这里插入图片描述

int x=1; do {
	System.out.println("HelloWorld"); 
	x++; }
while(x<=10);

do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。

break

使用场景:终止switch或者循环

continue

使用场景:结束本次循环,继续下一次的循环

嵌套循环

for(初始化表达式①; 循环条件②; 步进表达式⑦) { 
	for(初始化表达式③; 循环条件④; 步进表达式⑥) { 
		执行语句⑤; 
	} 
}

嵌套循环执行流程: 执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥ 外循环一次,内循环多次。 比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值