JavaSE_1

更新Maven不断从java JDK 1.8恢复JavaSE 1.8 阅读详情

01 Java概述

1.1 Java语言发展史

CHHART: Java发展史

  • Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言, 2009年Oracle甲骨文公司收购Sun公司
  • Java之父:詹姆斯·高斯林(James Gosling

1.2 Java语言跨平台原理

  • Java可以在任意操作系统上运行,Windows、Mac、Linux。我们只需要在运行Java应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(JVM Java Virtual Machine)就可以实现Java的跨平台使用了。

1.3 JRE和JDK

  1. JRE(Java Runtime Environment)

    • 是Java程序的运行时环境,它包括JVM和运行时所需要的核心类库
    • 需要注意的是,JRE是包含JVM的,因此只安装JRE也是可以实现Java的跨平台使用的
  2. JDK(Java Development Kit)

    • 是Java程序的开发工具包,包含JRE和开发人员使用的工具
    • 其中的开发工具包括:编译工具(javac.exe)和运行工具(java.exe)
    • 如果想开发一个全新的Java程序,必须安装JDK
  3. JDK、JRE和JVM的关系 由下图我们可以看出,JDK包含JRE,JRE包含JVM。对于开发人员来说,我们只需要使用JDK就可以满足一切开发和应用的需求

    CHART: JDK、JRE和JVM的关系

02 第一个程序

2.1 常用DOS命令

命令命令作用
盘符名称:盘符切换。E:回车,表示切换到E盘
dir查看当前路径下的内容
cd 目录进入单级目录
cd …回退到上一级目录
cd 目录1\目录2…进入多级目录
cd \回退到盘符目录
cls清屏
exit退出命令提示符窗口

2.2 Path环境变量的配置

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

2.3 HelloWorld案例

  • 开发java程序的三个步骤:编写程序、编译程序、运行程序

  • 编译:java 文件名.java

    范例:java HelloWorld.java

  • 执行:java 类名

    范例:java HelloWorld

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

03 基础语法

3.1 注释

  1. 注释解析:注释是在程序指定位置添加的说明性信息

    注释不参与程序运行,仅起到说明作用

  2. 注释的分类

    注释类别格式
    单行注释// 注释信息
    多行注释/* 注释信息 */
    文档注释/** 注释信息 */
  3. 实例

    /*
    	Java程序中最基本的组成单位是类。
    	类的定义格式:
    		public class 类名{
    		
    		}
    	这是定义的HelloWorld类
    */
    
    public class HelloWorld{
    	/*
    		这是main方法
    		main方法是程序的入口,代码的执行是从main方法开始的
    	*/
    	public static void main(String[] args) {
    		// 这是输出语句,“”里面的内容是可以改变的
    		System.out.println("HelloWorld");
    	}
    }
    

3.2 关键字

  1. 关键字概述:关键字是被Java赋予了特定含义的单词
  2. 特点:
    • 关键字的字母全部小写
    • 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观

3.3 常量

  1. 概念:在程序运行过程中,其值不可以发生改变的量

  2. 常量分类
    常量的分类:

    常量类型说明举例

|字符串常量|用双引号引起来的内容|“abc”、“123”、“Hello”|
|整数常量|不带小数的数字|100、200、0、-250|
|浮点数常量|带小数的数字|2.5、-3.14、0.0|
|字符常量|用单引号括起来的内容|‘a’、‘B’、‘9’、‘中’|
|布尔常量|布尔值,表示真假|只有两个值:ture、false|
|空常量|一个特殊的值,空值|值是:null|

3.4 数据类型

  1. 计算机存储单元:

    • 计算机存储设备的最小信息单元是“位(bit)”,又称为比特位,常用小写字母“b”表示
    • 计算机中最小的存储单元是“字节(byte)”,通常用大写字母“B”表示,字节是由连续的8个位组成
    • 其他常用的存储单位如下:
         1B = 8bit;
         1KB = 1024B;
         1MB = 1024KB;
         1GB = 1024MB;
         1TB = 1024GB
  2. 数据类型:

    • Java语言是强类型语言,对于每一种数据都给出了明确的数据类型

    • 不同的数据类型也分配了不同的内存空间,所有它们表示的数据大小也是不一样的

      CHART:数据类型

  3. 数据类型内存占用和取值范围:

    CHART:数据类型内存占用和取值范围

3.5 变量

  1. 变量概述:变量是在程序运行过程中,其值可以改变的量

    从本质上讲,变量是内存中一小块区域

  2. 变量定义:数据类型 变量名 = 变量值;

    例如,int a = 10;

  3. 变量的使用:包括取值和修改值

    public class VariableDemo{
    	public static void main(String[] args){
    		//定义变量
    		int a = 10;
    
    		//输出变量
    		System.out.println(a);
    
    		//修改变量
    		a = 20;
    		System.out.println(a);
    	}
    }
    
  4. 变量使用的注意事项:

    • 变量名称不能重复

    • 变量必须先赋值再使用

    • long类型变量定义的时候,为了防止整数过大,后面要加L/l

      (给出一个整数,默认是int类型的)

    • float类型变量定义的时候,为了防止类型不兼容,后面要加F/f

      (给出一个浮点数,默认是double类型的)

3.6 标识符

  1. 概念:标识符是给类、方法、变量等起名字的符号
  2. 标识符定义规则:
    • 由数字、字母、下划线_和美元符$ 组成
    • 不能以数字开头
    • 不能是关键字
    • 要区分大小写
  3. 常见命名约定:
    • 小骆峰命名法:方法、变量
         约定1:标识符是一个单词的时候,首字母小写;eg:name
         约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写;eg:firstNAME
    • 大骆峰命名法:类
         约定1:标识符是一个单词的时候,首字母大写;eg:Student
         约定2:标识符由多个单词组成的时候,每个单词的首字母大写;eg:GoodStudent

3.7 类型转换

  1. 类型转换分类:自动类型转换、强制类型转换

  2. 自动类型转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量

    ​ 例如:double d = 10;

    CHART: 自动类型转换

  3. 强制类型转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量

    ​ 例如:int k = (int)88.88; (可以实现但是不建议,会有数据的丢失)

04 运算符

4.1 算数运算符

  1. 运算符和表达式:

    • 运算符:对常量或者变量进行操作的符号

    • 表达式:用运算符把常量或者变量连接起来符合java语法的式子即为表达式。不同运算符连接的表达式体现的是不同类型的表达式

    • 例如:int a =10; int b = 20; int c = a + b;

      +:是运算符,并且是算术运算符

      a + b:是表达式,由于+是算术运算符,所以这个表达式称为算术表达式

    /*
    	算术运算符
    */
    public class OperatorDemo1{
    	public static void main(String[] args){
    		//定义两个变量
    		int a = 6;
    		int b = 4;
    
    		System.out.println(a + b);			# out>>10
    		System.out.println(a - b);			# out>>2
    		System.out.println(a * b);			# out>>24
    		System.out.println(a / b);			# out>>1
    		System.out.println(a % b);			# out>>2
    		//除法(/)得到的是商,取余(%)得到的是余数
    
    		//整数相除只能得到整数,要想得到小数,必须有浮点数的参与
    		System.out.println(6.0 / 4);	 	# out>>1.5
    	}
    }
    
  2. 字符的 ‘+’ 操作

    • 字符的 ‘+’ 操作是字符在计算机底层对应的数值来进行计算的

      CHART: ‘A’——65;‘a’——97;‘0’——48

    • 算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升

    • 提升规则:
        byte类型,short类型和char类型将被提升到int类型
        整个表达式的类型自动提示到表达式中最高等级操作数同样的类型
        等级顺序:byte, short, char ->int->long->float->double(char类型会被自动提升为int类型)

  3. 字符串的 ‘+’ 操作

    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");
        }
    }
    
    //结果:
    helloearth
    hello6666
    6666hello
    hello6666
    672hello
    
    • 当 ‘+’ 操作中出现字符串时,这个 ‘+’ 是字符串连接符,而不是算术运算

    • 在 ‘+’ 操作中,如果出现了字符串,就是连接运算符,否则就说算术运算

      当连续进行 ‘+’ 操作时,从左到右逐个执行

4.2 赋值运算符

CHART: 赋值运算符

  • 注意:扩展的赋值运算符隐含了强制转换

4.3 自增自减运算符

CHART: 自增自减运算符

  • 注意:

    ​ ++和–既可以放在变量的后面,也可以放在变量的前面

    ​ 单独使用的时候,++和–无论放在前面还算后面,结果是是一样的

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

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

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);    	
    }
}

//结果:
i=1
j=2
j=2

4.4 关系运算符

CHART:关系运算符

4.5 逻辑运算符

CHATR: 逻辑运算符(& | ^异或 !非)、短路逻辑运算符(&& ||)

  • 注意:
    (1)逻辑与&,无论左边真假,右边都要执行
    (2)短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行
    (3)逻辑或|,无论左边真假,右边都要执行
    (4)短路或||,如果左边为假,右边执行;如果左边为真,右边不执
/*
注意事项:
1. 逻辑运算符只能是一个boolean值
2. 与、或需要左右各自有一个Boolean值,但是取反只需要有唯一的一个booolean即可
3. 与、或两种运算符,如果有多个条件,可以连续写。
两个条件:条件A && 条件B
多个条件:条件A && 条件B && 条件C

TIPS:
对于1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来:
int x = 2;
1 < x && x < 3
*/

public class Demo09Logic {
	public static void main(String args[]) {
		System.out.println(true && false); // false
		System.out.println(true && true); // true
		// true && true --> true
		System.out.println(3 < 4 && 10 > 5); // true
		System.out.println("========");
		
		System.out.println(true || false); // true
		System.out.println(true || true); // true
		System.out.println(false || false); // false
		System.out.println("=========");
		
		System.out.println(true); // true
		System.out.println(!true); // false
		System.out.println("===========");
		
		int a = 10;
		System.out.println(3 > 4 && ++a < 100); // false
		System.out.println(a); // 10
		
		int b = 20;
		System.out.println(3 < 4 || ++b < 100); // true
		System.out.println(b); // 20
		
	}
}

4.6 三元运算符

  • 格式:关系表达式?表达式1:表达式2

  • 计算规则:首先计算关系表达式的值

    ​ 如果值为true,表达式1的值就是运算结果

    ​ 如果值为false,表达式2的值就是运算结果

/*
	三元运算符
*/
public class OperatorDemo{
	public static void main(String[] args){
	//定义两个变量
	int a = 10;
	int b = 20;
	
	//获取两个数据中的较大值
	int max = a > b ? a : b;
	
	//输出结果
	System.out.println("max:" + max);			# out>>max:20
	}
}

05 数据输入

  1. Scanner使用的基本步骤:

    1. 导包:import java.util.Scanner;

      ​ 导包的动作必须出现在类定义的上边

      1. 手动导包
      2. 快捷键导报:Alt+Enter
      3. 自动导报:输入Scan+Enter
    2. 创建对象:Scanner sc = new Scanner(System.in);

      ​ 这里面只有sc是变量名,可以改变,其他的都不能变

    3. 接收数据:int i = sc.nextInt();

      ​ 上面这个格式,只有i是变量名,可以变,其他都不能变

    4. 示例:

      /*
      	数据输入:
      		(1)导包:
      				import java.util.Scanner;
      		(2)创建对象:
      				Scanner sc = new Scanner(System.in);
      		(3)接收数据:
      				int x = sc.nextInn();
      */
      
      //导包:
      import java.util.Scanner;
      
      public class ScannerDemo{
      	public static void main(String[] args){
      	//创建对象:
      	Scanner sc = new Scanner(System.in);
      
      	//接收数据:
      	int x = sc.nextInt();
      
      	//输出数据:
      	System.out.println("x:" + x);
      	}
      }
      

06 分支语句

6.1 流程控制

  1. 流程控制语句分类:

    (1)顺序结构

    (2)分支结构(if, switch)

    (3)循环结构(for, while, do…while)

  2. 顺序结构:顺序结构是程序中最简单、最基本的流程控制,没用特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

6.2 if语句

  1. 格式1

    if (关系表达式){
       	语句体;
    }
    /*
    执行流程:
       1.首先计算关系表达式的值;
       2.如果关系表达式的值为true,则执行语句体;
       3.如果关系表达式的值为false就不执行语句体;
       4.继续执行后面的语句内容
    */
    
  2. 格式2

    if (关系表达式){
    	语句体1;
    }else{
    	语句体2;
    }
    /*
    执行流程:
       1.首先计算关系表达式的值;
       2.如果关系表达式的值为true,则执行语句体1;
       3.如果关系表达式的值为false,则执行语句体2;
       4.继续执行后面的语句内容
    */
    
  3. 格式3

    if (关系表达式1){
    	语句体1;
    }else if(关系表达式2){
    	语句体2;
    }
    ···
    else{
    	语句体n+1;
    }
    /*
    执行流程:
       1.首先计算关系表达式的值;
       2.如果关系表达式的值为true,则执行语句体1;
       3.如果关系表达式的值为false,则执行语句体2;
       4.继续执行后面的语句内容
    */
    

6.3 switch语句

switch(表达式){
case 值1:
			语句体1;
			break;
case 值2:
			语句体2;
			break;
···
default:
			语句体n+1;
			[break;]
}
/*
格式说明:
   1.表达式:取值为byte, short, int, char, string.
   2.case:后面跟的是要和表达式进行比较的值。
   3.break:表示中断,结束的意思,用来结束switch语句。
   4.default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
*/

07 循环语句

7.1 for循环语句

for (初始化语句;条件判断语句;条件控制语句){
	循环体语句;
}
/*
执行流程:
   1.执行初始化语句;
   2.执行条件判断语句,看其结果是true还是false
   		如果是false,循环结束,如果是true,继续执行;
   3.执行循环体语句;
   4.执行条件控制语句;
   5.回到(2)继续
*/

7.2 while循环语句

初始化语句;
while (条件判断语句){
	循环体语句;
	条件控制语句;
}
//执行流程:同for

7.3 do…while循环语句

初始化语句;
do{
	循环体语句;
	条件控制语句;
}while(条件判断语句);
/*
执行流程:
   1.执行初始化语句;
   2.执行循环体语句;
   3.执行条件控制语句;
   4.执行条件判断语句,看其结果是true还是false
		如果是false,循环结束,如果是true,继续执行;
   5.回到(2)继续
  • 三种循环的区别:
    (1)for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
    (2)do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

  • for和while的区别:
    (1)条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问了
    (2)条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

  • 死循环格式:
    (1)for( ; ; ){ }
    (2)while(true){ }
    (3)do{ }while(true);

    while的死循环结构是最常见的,命令提示符窗口中Crtl+C可以结束死循环

7.4 跳转控制语句

  • break:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
  • continue:用在循环中,基于条件控制,终止循环内容的执行,也就是说结束当前的整个循环

7.5 Random

  1. 作用: 产生一个随机数

  2. 使用步骤:

    1. 导包:import java.util.Random;

      ​ 导包的动作必须出现在类的定义的上面

    2. 创建对象:Random r = new Random();

      ​ r是变量名,可以变,其他的都不允许变

    3. 获取随机数:int number = r.nextInt(10); //获取数据的范围:[0,10],包括0,不包括10

      ​ number是变量名,可以变,数字10可以变,其他的都不允许变

  3. 示例:

    /*
    	Random
    */
    //导包:
    import java.util.Random
    
    public class RandomDemo{
    	public static void main(String[] args){
    		//创建对象:
    		Random r = new Random();
    	
    		//用循环获取10个随机数
    		for(int i=0; i<10; i++){
    			//获取随机数:
    			int number = r.nextInt(10);
    			System.out.println("number:" + number);
    		
    		//需求:获取一个1-100之间的随机数
    		int x = r.nextInt(100) + 1;
    		System.out.println(x);
    		}
    	}
    }
    

08 IEDA

8.1 IDEA概述

  • IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,是业界公认的目前用于Java程序开发最好的工具
  • 集成环境:把代码编写、编译、执行、调试等多种功能综合到一起的开发工具

8.2 IDEA中的HelloWorld

  • 步骤:
    1. 创建一个空项目(JavaSE_Code)
    2. 创建一个新模块(idea_test)
    3. 在idea_test模块下的src下创建一个包(com.itheima)
    4. 在com.itheima包下新建一个类(Helloworld)
    5. 在Helloworld类中编写代码
    6. 在idea中执行程序

8.3 IDEA中项目结构

  • Project–>模块–>包–>类

CHART: IDEA中项目结构

8.4 IDEA中内容辅助键和快捷键

  • 快速生成语句:

    1. 快速生成main()方法:psvm,回车

    2. 快速生成输出语句:sout,回车

      (Ctrl+Alt解决无法使用的情况)

  • 内容辅助键:

    1. ctrl+alt+space,内容提示,代码补全等
  • 快捷键:

    1. 注释:
        单行:选中代码,ctrl+/
        多行:选址代码,ctrl+shift+/
    2. 格式化:
        ctrl+alt+L

8.5 IDEA中模块的作用

  • IDEA中模块操作分类:新建模块、删除模块、导入模块

09 数组

9.1 数组定义格式

  1. 数组概念:数组(array)是一种用于存储多个相同类型数据的存储模型
  2. 数组的定义格式:
    (1)格式1:数据类型[ ] 变量名,例如:int [ ] arr。定义了一个int类型的数组,数组名是arr
    (2)格式2:数据类型 变量名[ ], 例如:int arr[ ]。定义了一个int类型的变量,变量名是arr数组

9.2 数组初始化之动态初始化

  1. 数组初始化概述:就说为数组中的数组元素分配内存空间,并为每个数组元素赋值

  2. 数组初始化类型:动态初始化、静态初始化

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

      格式:数据类型 [ ] 变量名 = new 数据类型[数组长度],例如:int [] arr = new int[3]

      public class ArrayDemo{
      	public static void main(String[] args){
      	int[] arr = new int[3];
      	/*
      	左边:
      		int:说明数组中的元素是int类型
      		[]:说明这是一个数组
      		arr:这是数组的名称
      	右边:
      		new:为数组申请内存空间
      		int:说明数组中的元素类型是int类型
      		[]:说明这是一个数组
      		3:数组长度,其实就说数组中的元素个数
      	*/
      	}
      }
      
    2. 静态初始化:9.5部分

9.3 数组元素访问

  1. 数组变量访问方式:数组名

    数组内部保存数据的访问方式:数组名[索引]

  2. 索引:索引是数组中数据的编号方式,用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

    注意:1.索引是从0开始的、2.索引是连续的、3.索引逐一增加,每次加1

    public class ArrayDemo{
    	public static void main(String[] args){
    	int[] arr = new int[3]
    	
    	//输出数组名
    	System.out.println(arr);		# out>> [i@880ec60 表示内存地址值
    
    	//输出数组中的元素
    	System.out.println(arr[0]);		# out>> 0
    	System.out.println(arr[1]);		# out>> 0
    	System.out.println(arr[2]);		# out>> 0
    	}
    }
    

9.4 Java中内存分配

  • 栈内存:存储局部变量

    定义在方法中的变量,例如:arr

    使用完毕,立即消失

  • 堆内存:存储new出来的内容(实体,对象)

    数组在初始化时,会为存储空间添加默认值

    1. 整数:0
    2. 浮点数:0.0
    3. 布尔:false
    4. 字符:空字符
    5. 引用数据类型:null

    每一个new出来的东西都会有一个地址值

    使用完毕,会在垃圾回收器空闲时被收回

CHATR: Java中内存分配

9.5 数组初始化之静态初始化

  • 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

    1. 格式1:数据类型 [ ] 变量名 = new 数据类型[ ] {数据1, 数据2, 数据3, …},

      例如:int [ ] arr = new int[ ] {1, 2, 3};

    2. 格式2:数据类型 [ ] 变量名 = {数据1, 数据2, 数据3, …},

      例如:int [ ] arr = {1, 2, 3};

9.6 数组操作的两个常见小问题

  1. 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题

  2. 空指针异常:访问是数组已经不再指向堆内存的数据,造成空指针异常

    null:空值,引用数据类型的默认值,表示不指向任何有效对象,arr = null;

9.7 数组常见操作

  1. 遍历:for循环 + 数组名.length

    public class ArrayTest01{
    	public static void main(String[] args){
    		//定义数组
    		int[] arr = {1 , 2, 3, 4, 5};
    		
    		//使用通用的遍历格式
    		for(int x=0; x<arr.length; x++){
    			System.out.println(arr[x]);
    		}
    	}
    }
    
  2. 获取元素个数:数组名.length,例:arr.length

  3. 获取最值:

    1. 定义一个变量,用于保存最大值(或最大值)
    2. 取数组中第一个元素作为变量的初始值
    3. 与数组中剩余的数据逐个比较
    public class test1 {
    	public static void main(String []args ) {
    //获取最值
    		//定义一个数组
    		int[] arr = {3,1,2,4};
    		//定义存放最大值,令他等于数组第一个元素
    		int max = arr [0];
    		//循环比较找出真正的最大值
    		for(int i = 1;i < arr.length;i++) {
    			if(max <= arr[i]) {
    				max = arr[i];
    			}
    		}
    		System.out.println(max);
    	}
    }
    

10 方法

10.1 方法概述

  • 概念:方法(Method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
    注意:
    1. 方法必须先创建才可以使用,该过程称为方法定义
    2. 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用

10.2 方法的定义和调用

  • 方法定义与调用:

    // 方法定义
    public static void method_name(){
    	//方法体
    }
    
    //方法调用
    method_name()
    

    示例:

    public class MethodDemo
    {
    	public static void main(String[] args)
    	{
    		//调用方法
    		isEvenNumber();
    	}
    	
    	//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
    	public static void isEvenNumber()
    	{
    		//定义变量
    		int number = 10;
    		number = 9;
    		
    		//判断该数是否是偶数
    		if(number%2 ==0)
    		{
    			System.out.println(true);	
    		}
    		else
    		{
    			Systm.println(false);
    		}
    	}
    }
    

10.3 带参数方法的定义和调用

  1. 带参数方法定义:

    格式1:public static void 方法名(参数){...}
    格式2(单个参数):public static void 方法名(数据类型 变量名){...}
    格式3(多个参数):public static void 方法名(数据类型 变量名1, 数据类型 变量名2, ...){...}
    

    注意:

    1. 方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错;
    2. 方法定义时,多个参数之间使用逗号分隔
  2. 带参数方法调用:

    格式1:方法名(参数);
    格式2(单个参数):方法名(变量名/常量值);
    格式3(多个参数):方法名(变量名1/常量值1, 变量名2/常量值2);
    

    注意:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

  3. 形参和实参:

    1. 形参:方法定义中的参数,等同于变量定义格式。例:int number;
    2. 实参:方法调用中的参数,等同于使用变量或常量。例:10 number

10.4 带返回值方法的定义和调用

  1. 带返回值方法定义:

    格式:public static 数据类型 方法名(参数){
    	return 数据;
    }
    

    注意:方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

  2. 带返回值方法调用:

    格式1:方法名(参数);
    格式2:数据类型 方法名(参数);
    

    注意:方法的返回值通常会使用变量接收,否则该返回值将无意义

10.5 方法的注意事项

  1. 注意事项:

    • 方法不能嵌套定义
    • void表示无返回值,可以省略return,也可以单独书写return,后面不加数据
  2. 方法的通用格式:

    public static 返回值类型 方法名(参数)
    {
    	方法体;
    	return 数据;
    }
    其中:
    public static----修饰符,目前先记住这个格式
    返回值类型--------方法操作完毕之后返回的数据的数据类型
    方法名------------调用方法的时候使用的标识
    参数--------------由数据类型和变量名组成,多个参数之间使用逗号隔开
    方法体------------完成功能的代码块
    return-----------如果方法操作完毕,有数据返回,用于把数据返回给调用者
    

    定义方法时,要做到两个明确:

    1. 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没用,写void;如果有,写对应的数据类型
    2. 明确参数:主要是明确参数的类型和数量

    方法调用时:

    1. void类型的方法可以直接调用
    2. 非void类型的方法,推荐用变量接收调用

10.6 方法重载

  1. 方法重载概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载:

    • 多个方法在同一个类中
    • 多个方法具有相同的方法名
    • 多个方法的参数不相同,类型不同或者数量不同
  2. 方法重载特点:

    • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式;
    • 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否相互构成重载

    示例:

    /*
    	方法重载:
    		多个方法在同一个类中;
    		多个方法具有相同的方法名;
    		多个方法的参数不相同,类型不同或者数量不同
    
    		与返回值无关,在调用方法的时候,Java虚拟机会通过参数的不同来区分同名的方法
    */
    public class MethoDemo
    {
    	public static void main(String[] args)
    	{
    		//调用方法
    		int result = sum(a:10, b:20);
    		System.out.println(result1);
    		
    		double result2 = sum(a:10.0, b:20.0);
    		System.out.println(result2);
    
    		int reslult3 = sum(a:10, b:20, c:30);
    		System.out.println(result3);
    		
    	//需求1:求两个int类型数据和的方法
    	public static int sum(int a, int b)
    	{
    		return a + b;
    	}
    
    	//需求2:求两个double类型数据和的方法
    	public static int sum(double a, double b)
    	{
    		return a + b;
    	}
    
    	//需求3:求三个int类型数据和的方法
    	public static int sum(int a, int b, int c)
    	{
    		return a + b + c;
    	}
    }
    

10.7 方法的参数的传递

  1. 对于基本数据类型的参数,形参的改变,不影响实际参数的值

    CHART: 基本数据类型 参数不传递

  2. 对于引用类型的参数,形参的改变,影响实际参数的值

    CHART: 引用类型 参数传递

11 Debug

  1. Debug概述:是供程序员使用的程序调试的工具,它用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序
  2. Debug操作流程:Debug调试,又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看
  3. 注意事项:如果数据来自键盘输入,一定要记住输入数据,不然就不能继续往下查看了

案例

Test_1 减肥计划

package com.example;

//导包

import java.util.Scanner;

public class Test_01 {
    public static void main(String[] args) {
        //键盘录入一个星期数,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数: ");
        int week = sc.nextInt();

        //对星期数进行判断,这里用if语句实现
        if (week < 1 || week > 7) {
            System.out.println("你输入的星期数有误 ");
        } else if (week == 1) {
            System.out.println("跑步");
        } else if (week == 2) {
            System.out.println("游泳");
        } else if (week == 3) {
            System.out.println("慢走");
        } else if (week == 4) {
            System.out.println("动感单车");
        } else if (week == 5) {
            System.out.println("拳击");
        } else if (week == 6) {
            System.out.println("爬山");
        } else {
            System.out.println("好好吃一顿");
        }
    }
}
//switch实现
package com.example;

import java.util.Scanner;

public class Test_02 {
    public static void main(String[] args) {
        //键盘录入一个星期数,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        //对星期数进行判断,这里用 switch 语句实现
        switch (week) {
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                //...
            default:
                System.out.println("你输入的星期数有误");
        }
    }
}

Test_2 逢七过

Test_3 不死神兔

Test_4 百钱百鸟

Test_5 数组元素求和

Test_6 数组内容相同

Test_7 查找

Test_8 反转

Test_9 评委打分

Build path specifies execution environment JavaSE-1.5 警告的解决办法 有时候不知道为什么就会有这样的警告:Build path specifies execution environment JavaSE-1.5 简单的处理办法就是: 右键项目→Build path,选择config build path,选择JRS System Library[JavaSE-1.5],Edit,选择Workspace default JRE(.....)  点确定就不会报警告了。 阅读详情

相关推荐

PDDL入门

PDDL的组成部分 Objects:对象,世界上我们感兴趣的事物。 Predicates:谓词,我们感兴趣的事实(例如对象的属性),可以为真,也可以为假。 An initial state:初始化状态,我们开始所处的世界状态,即开始时为真的事物。 Goal specification:目标状态,我们想要结束的世界的状态,即我们希望最终成为真实的事情。 Actions/Operators:动作/操作,改变世界状态的方式,即发生的事情改变了事实。 PDDL语法 PDDL 文件的扩展名通常是.pddl 要

工控小白2021的博客 4823

java 包导入快捷键_Java导入包的快捷键

Random类是在java.util这个包中。可以手动在源程序顶部输入importjava.util.Random;语句来申明该程序将要使用java.util包中的Random类,然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Random上,然后按下Ctrl+Shift+M,Eclipse会自动帮你完成导入的工作了。此时保存一下源代码,警告是不是消失了?希望你牢记这个快捷键的...

weixin_36377516的博客 5298

STM32CubeMX定时器进阶玩法:用编码器模式实现电机转速测量(附避坑清单)

本文详细介绍了如何使用STM32CubeMX配置定时器的编码器模式实现电机转速测量,包括硬件连接、CubeMX配置关键步骤、转速计算算法及常见问题解决方案。特别针对工业控制和机器人开发中的高精度需求,提供了实用的避坑清单和优化技巧,帮助开发者高效完成项目。

joy55的博客 203

【Eclipse使用教程】Java导包快捷键

第一步:光标选择要导包的行 第二布:同时按Ctrl + Shift + O 第三步:方向键选择要导的包,按Ehter回车键即可

LaoYe的博客 1910

DRV2605L触觉驱动芯片实战指南:从自动校准到音频转触觉应用

触觉反馈技术是现代人机交互的核心组成部分,它通过精确控制振动马达来模拟物理触感,广泛应用于智能手机、游戏手柄和汽车触摸屏等领域。其原理在于将电信号转化为机械振动,关键在于如何高效、精准地驱动不同类型的马达(如ERM和LRA)。这项技术的核心价值在于提升交互的真实感和沉浸感。在工程实践中,集成驱动芯片如DRV2605L通过内置智能反馈引擎和自动校准功能,解决了传统驱动方式响应慢、效果不一致的难题。它特别适用于需要高质量触觉反馈的应用场景,例如消费电子、游戏外设和车载信息娱乐系统。其中,自动校准能自适应优化驱动

weixin_42631411的博客 342

工业级稳定!C# 实现 Modbus RTU 多设备并发通信实战

摘要:本文提出一种基于C#的Modbus RTU多设备并发通信方案,解决工业自动化中单线程通信的串口抢占、数据阻塞等问题。采用任务队列+线程安全锁+异步调度的三层架构,实现16台及以上RTU设备的稳定并发读写。方案包含串口管理单例、Modbus通信核心和任务调度层,支持超时重试、异常捕获等工业级容错机制。通过NModbus库和.NET框架,提供可直接用于工业现场的代码实现,已在工控项目中长期验证,有效提升多设备通信效率和稳定性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 581

sts导报快捷键_Eclipse怎么导入jar包 Eclipse导入jar包快捷键及图文详细教程

Eclipse导入jar包是使用eclipse进行java开发时至关重要的一环,一个jar包可能就会导致一个项目的成功与否,但是有许多朋友还不是很清楚不是很熟练eclipse导入jar包的快捷键或者方法,小编为大家带来了eclipse导入jar包的快捷键教学以及导入jar包的详细教程。-· Eclipse导入jar包详细教程 ·-- 方法01·最常用的普通操作方式:基本步骤式右击“项目”→选择Pr...

weixin_36152824的博客 1255

把 ABAP Unit 测试放进本地类:让重构更安全、让测试更好找的组织方式

ABAP测试代码组织策略:单元测试与集成测试的合理存放位置 本文针对ABAP开发中测试代码组织混乱的问题,提出了一套系统化的解决方案: 单元测试应存放在被测类的本地测试include中(...CCAU或...T99),确保测试与代码同步演进且易于发现 跨对象测试(组件/集成/系统测试)应创建单独的全局测试类,并通过FOR TESTING和ABSTRACT进行防护 使用! @testing注释建立测试关系,使测试与被测对象明确关联,提高可发现性 针对不同技术栈(RAP/CAP/OData)提供了具体落地建议,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1732

Java导入包的快捷键

Random类是在java.util这个包中。可以手动在源程序顶部输入import java.util.Random;语句来申明该程序将要使用java.util包中的Random类,然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Random上,然后按下Ctrl+Shift+M,Eclipse会自动帮你完成导入的工作了。此时保存一下源代码,警告是不是消失了?希望你牢记这个快捷键

bestseal的专栏 8万+

①电子产品拆解分析-暖手宝

电子产品拆解分析-暖手宝 ①按键三档调温暖手; ②长按进入氛围呼吸灯; ③安卓接口充电以及支持USB输出;

a6662580的博客 5296

【四足机器人实战】四足机器人运动学、动力学模型

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!四足机器人的运动学和动力学模型是其设计和控制的基础,涉及到如何精确描述和预测机器人在不同条件下的运动状态和行为本文先对四足机器人运动学、动力学模型做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章运动学模型主要关注四足机器人的几何形态和时间序列下的运动特性,而动力学模型则进一步考虑了引起这些运动的力和扭矩的作用效果。运动学模型:运动学模型描述了四足机器人在没有考虑力的影响下的运动特性。

qq_35635374的博客 1057

eclipse中,Java导入包的快捷键

无法牢记每个类所在的包的名字?Eclipse可以直接快捷键,代替手动在源程序顶部输入import java.util.TreeSet; 具体解决方法 把光标移动到有红色波浪线的TreeSet上,然后按下Ctrl+Shift+M / CTRL+SHIFT+O ,Eclipse会自动帮你完成导入的工作了 导入当前一个的包:Ctrl+Shift+M 导所有的,还删除掉未用的包(推荐...

3万+

四足狗机器人硬件开发技术栈详解

本文系统介绍了四足狗机器人的硬件开发技术,重点分析了五大核心模块:机械结构(骨架设计)、动力系统(关节驱动)、感知系统(环境监测)、控制系统(决策中枢)和电源系统(能源管理)。文章详细阐述了各模块的选型标准、技术要点和协同设计原则,提供了从需求定位到组装调试的完整开发流程,并针对常见问题给出解决方案。随着材料轻量化、模块标准化和AI集成化的发展趋势,四足机器人硬件将向更灵活、更智能的方向演进,为工业巡检、应急救援等场景提供更强大的移动平台支持。

start_up_go的博客 284

JavaSE JDK1.8 简单总结

JavaEE JDK1.8 简单总结(思维导图) 访问权限关键字: 重载和重写的区别: 异常体系:

weixin_45132249的博客 332

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JavaSE总结JDK1.8安装图解

JavaSE回顾总结之开局篇JDK8安装图解巧妇难为无米之炊! 步骤一: 下载一个JDk,版本嘛,你开心就好!JDK8传送门 巴拉拉小魔仙(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 点击同意 然后下载你需要的版本。注意:确定电脑是多少位的。 window7下

梦豆学院的博客 6824

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Using JAXB 2.1 with JavaSE 6

https://jaxb.dev.java.net/guide/Migrating_JAXB_2_0_applications_to_JavaSE_6.html 7.1.2. Using JAXB 2.1 with JavaSE 6 JavaSE 6 comes with JAXB 2.0 API in rt.jar. Therefore, using JAXB 2.1 with Java...

loginjava的专栏 186

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

1.1JavaSE基础之Java的发展历史

Java发展历史,Java是一门完整的编程语言,它包括自己的语法和各种Java的底层支持

君哥聊编程 455

JavaSE通过Tcp网络协议来实现服务端与客户端1对1聊天

JavaSE通过Tcp网络协议来实现服务端与客户端1对1聊天 服务器端: public class Server { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(65535); Socket socket = ss.accept(); InputStream in = socket.getInputStream()

qq_41476646的博客 279

JavaSE——JDK1.8新特性概述

1.枚举 1.1.枚举问题引出 2.注解 3.接口定义加强 4.Lambda表达式 5.方法引用 6.内建函数式接口

LiLiLiLaLa的博客 876

Myeclipse Build path specifies execution environment JavaSE-1.7. There are no J

问题描叙:         Build path specifies execution environment JavaSE-1.7. There are no JREs installed in the workspace that are strictly compatible with this environment.  解决方式:      进入Configure Build...

luojialin0315的专栏 506

javaSE1

一、cmd的简单操作 cmd操作快捷键: exit 退出cmd cls 清屏 dir 列出当前目录下的子文件 cd 改变目录 cd 目录的路径(相对路径和绝对路径都行) cd .. 回到上级目录 cd \ 直接回到根目录 二、java版本的分类 ...

tangheadmaster的博客 192

每日作业 - JavaSE第1天

每日作业 - JavaSE第1天 题目1(训练) 请编写程序,将如下语句输出到屏幕上: java是一门跨平台的计算机语言 被称为一次编写,处处运行 训练目标 java语言HelloWorld案例的语法格式和编译运行。 训练提示 1、创建java文件。 2、编写类,用于完成该程序。 3、程序的运行需要主方法,编写主方法。 4、该使用什么语句将题目中的文本输出? 5、该怎样编译和运行java文件? ...

FreeSpider 2089

javase1

java基础语法 引用数据类型 : Scanner类 ,Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。 Scanner使用步骤: 导包:import java.util.Scanner; 创建对象实例:Scanner sc = new Scanner(System.in); 调用方法: int i = sc.nextInt(); 用来接收控制台录入的...

weixin_45031730的博客 148

JavaSE基础语法1

一、JDK下载安装: 二、你好Java 三、

范高伦的博客 696

警告:构建路径指定执行环境 JavaSE-1.6。工作空间中没有与此环境严格兼容的 JRE。...

警告:构建路径指定执行环境JavaSE-1.6。工作空间中没有与此环境严格兼容的JRE。如下: 解决方法:右键你的项目:构建路径->添加库->选择jre7.0(注:我的JDK是7.0版本)。然后把项目下的JavaSE-1.6右键移除 转载于:https://www.cnblogs.com/HTWorking/archive/2012/09/04/267104...

awqx18469的博客 6196

JavaSE 基础 - 【(1-14章)思维导图】

JavaSE 基础 - 【(1-14章)思维导图】思维导图传送门 思维导图    为JavaSE零基础的思维导图,对应内容为第1-14章内容 传送门 上一章:JavaSE 基础 - 第十四章 super关键字 下一章:

佬涛的博客 712
上一篇: 笔记:离散数学
下一篇: JavaSE零基础 · 思维导图
ITS_Oaij
博客等级 码龄6年 1857粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值