零基础JAVA——黑马程序员课程笔记

Posted King✪ω✪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础JAVA——黑马程序员课程笔记相关的知识,希望对你有一定的参考价值。

视频地址:点击访问
(我这里开发工具有时候用eclipse有时候用IDEA,看每个人的习惯)

文章目录

JAVA语言发展史

JAVA跨平台原理

JRE和JDK

JRE (Java Runtime Environment)

是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。
我们想要运行一个已有的Java程序, 那么只需安装JRE即可。

JDK (Java Development Kit)

是Java程序开发工具包,包含JRE和开发人员使用的工具。
其中的开发工具:编译工具(javac.exe)和运行工具(java.exe) 。
我们想要开发一个全新的Java程序,那么必须安装JDK。

JDK安装目录

为什么要配置Path环境变量

开发Java程序,需要使用JDK提供的开发工具,而这些工具在JDK的安装目录的bin目录下。
为了在开发Java程序的时候,能够方便的使用javac和java这些命令,我们需要配置Path环境变量。

Java程序开发运行流程

开发Java程序,需要三个步骤:编写程序,编译程序,运行程序

空常量不能直接输出

dos命令

数据类型


变量使用的注意事项:

名字不能重复
变量未赋值,不能使用
long类型的变量定义的时候,为了防止整数过大,后面要加L
float类型的变量定义的时候,为了防止类型不兼容,后面要加F

标识符定义规则

●由数字、字母、下划线( )和美元符($)组成
●不能以数字开头
●不能是关键字
●区分大小写

常见命名约定

小驼峰命名法:方法、变量
●约定1:标识符是一个单词的时候,首字母小写
●范例1:name
●约定2: 标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
●范例2: firstName
大驼峰命名法:类
●约定1: 标识符是一个单词的时候,首字母大写
●范例1: Student
●约定2: 标识符由多个单词组成的时候,每个单词的首字母大写
●范例2: GoodStudent

类型转换

自动类型转换

把一个表示数据范围小的数值或者变量赋值给另-个表示数据范围大的变量
范例: doubled = 10;

强制类型转换

把一个表示数据范围大的数值或者变量赋值给另-个表示数据范围小的变量
●格式:目标数据类型变量名= (目标数据类型)值或者变量;
●范例: intk = (int)88.88;

运算符

算术运算符

字符的+操作

package test;

public class test {
    public static void main(String[] args) {
    	int i = 0;
    	char c = 'A';//'A'的值是65
    	System.out.println(i + c);
    }
}

结果:

提升规则:

  • byte类型, short类型和char类型将被提升到int类型
  • 整个表达式的类型自动提升到表达式中最等级操作数同样的类型
  • 等级顺序: bvte. short.char->int-> lona-> float > double

字符串的+操作

package test;

public class test {
    public static void main(String[] args) {
    	System.out.println("hello"+"earth");
    	System.out.println("hello"+ 6666);
    	System.out.println(6666+ "hello");
    	System.out.println("hello"+6+666);
    	System.out.println(6+666+"hello");
    }
}

结果:

赋值运算符


红色的运算符隐含着强制类型转换

自增自减运算符


单独使用

package test;

public class test {
    public static void main(String[] args) {	
    	//单独使用
    	int i = 1;
    	System.out.println("i="+i);
    	
    	i++;
    	System.out.println("i="+i);
    	
    	++i;
    	System.out.println("i="+i);
    }
}

结果:

参与操作使用

package test;

public class test {
    public static void main(String[] args) {	
    	int i = 1;
    	System.out.println("i="+i);
    	//参与操作使用
    	int j = i++;
    	System.out.println("i="+i);
    	System.out.println("j="+j);    	
    }
}

结果:

package test;

public class test {
    public static void main(String[] args) {	
    	int i = 1;
    	System.out.println("i="+i);
    	//参与操作使用
    	int j = ++i;
    	System.out.println("i="+i);
    	System.out.println("j="+j);    	
    }
}

结果:

  • 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。

关系运算符

逻辑运算符

短路逻辑运算符

区别:



注意事项:
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

三元运算符


计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果如果值为false,表达式2的值就是运算结果

数据输入

Scanner使用的基本步骤

package test;

import java.util.Scanner;

public class test {
    public static void main(String[] args) {	
    	Scanner sc = new Scanner(System.in);
    	int i = sc.nextInt();
    	System.out.println("i="+i);
    	sc.close();//关闭sc接口
    }
}

结果:

流程控制

分支结构

if语句

public class test {
    public static void main(String[] args) {	
 	Scanner sc = new Scanner(System.in);
    	int a = sc.nextInt();
    	if (a % 2 == 0)
    		System.out.println("a是偶数");
    	else
    		System.out.println("a是奇数");
    	sc.close();
    }
}

结果:

switch语句

输入一个数字判断是什么季节

public class test {
    public static void main(String[] args) {	
   	Scanner sc = new Scanner(System.in);
    	int i = sc.nextInt();
    	switch (i) {
    	case 1:
    		System.out.println("春季");
    		break;
    	case 2:
    		System.out.println("春季");
    		break;
    	case 3:
    		System.out.println("春季");
    		break;
    	case 4:
    		System.out.println("夏季");
    		break;
    	case 5:
    		System.out.println("夏季");
    		break;
    	case 6:
    		System.out.println("夏季");
    		break;
    	case 7:
    		System.out.println("秋季");
    		break;
    	case 8:
    		System.out.println("秋季");
    		break;
    	case 9:
    		System.out.println("秋季");
    		break;
    	case 10:
    		System.out.println("冬季");
    		break;
    	case 11:
    		System.out.println("冬季");
    		break;
    	case 12:
    		System.out.println("冬季");
    		break;
    	default:
    		System.out.println("输入不合法");
    		break;
    	}
    	sc.close();
    }
}	

利用case穿透性

//case穿透
public class test {
        public static void main(String[] args) {	
    	Scanner sc = new Scanner(System.in);
    	int i = sc.nextInt();
    	switch (i) {
    	case 1:
    	case 2:
    	case 3:
    		System.out.println("春季");
    		break;
    	case 4:
    	case 5:
    	case 6:
    		System.out.println("夏季");
    		break;    		
    	case 7:
    	case 8:
    	case 9:
    		System.out.println("秋季");
    		break;   
    	case 10:
    	case 11:
    	case 12:
    		System.out.println("冬季");
    		break; 
    	default:
    		System.out.println("输入不合法");
    	}
    	sc.close();
    }
}	

循环结构

for语句

经典案例:

public class test {
        public static void main(String[] args) {	
//先找到100——999
    	for(int i = 100;i < 1000;i++) {
    		//判断条件
    		int a = i % 10;
    		int b = i / 10 % 10;
    		int c = i / 100 % 10;
    		if(a*a*a+b*b*b+c*c*c == i) {
    			System.out.println(i);
    		}
    	}
    }
}	

结果:

while语句


public class test {
        public static void main(String[] args) {
    	int i = 0;
    	double hou = 0.1;
    	while(hou <=8844430) {
    		i++;
    		hou = hou*2;
    	}
    	System.out.println(i);
    }
}	

结果:

三种循环的区别

Random作用和使用步骤

作用:产生一个随机数

猜数字案例

package test;
import java.util.Random;
import java.util.*;


public class test1 {
	public static void main(String []args ) {
		Random r = new Random();
		int num = r.nextInt(100)+1;
		System.out.println(num);
		Scanner sc = new Scanner(System.in);
		while(true) {
		int num1 = sc.nextInt();
		if(num > num1) {
			System.out.println("需要猜大一点");
		}else if(num < num1) {
			System.out.println("需要猜小一点");
		}else {
			System.out.println("猜对了,你真厉害");
			break;
		}
	}
	}
}

结果:

数组

数组定义格式

什么是数组

数组(array)是一种用于存储多个相同类型数据的存储模型

数组定义格式

数组初始化之动态初始化

数组初始化概述

Java中的数组必须先初始化然后才能使用
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

数组初始化方式

动态初始化和静态初始化

动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

  • int:说明数组中元素的类型是int
  • [ ]:说明这是一个数组
  • arr:这是数组的名称
  • new:为数组申请内存空间
  • int:说明数组中元素的类型是int
  • [ ]:说明这是一个数组
  • 3:数组长度,其实就是数组中的元素个数

数组元素访问

public class test1 {
	public static void main(String []args ) {
    	int[] arr = new int [5];
		//输出数组名
		System.out.println(arr);
		//输出数组元素
		System.out.println(arr[0]);
	}
}

结果:

内存分配

Java中内存分配

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

***这里arr指向的是内存地址,这个内存地址是首地址(数组首地址)***
零基础自学javase黑马课程第十五天

黑马程序员Java自学资源汇总放送

黑马java课程

黑马java课程2222

学Java开发到什么程度能实现月薪12K吗?

求黑马java的全部全套视频