0.前言

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。Java 可运行于多个平台,如 Windows, MacOS及其他多种 UNIX 版本的系统。本教程通过简单的实例将让大家更好的了解 Java 编程语言。移动操作系统 Android 大部分的代码采用 Java 编程语言编程。个人觉得Java的基础语法十分简单,三天就能学得会。

1.Java基础

1.1 Java的基本语法

大小写敏感:Java 是大小写敏感的,这就意味着标识符Hello与hello是不同的。 :类似public class框架. 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法:类似函数的框架. 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

1.2 Java的框架

1.2.1 Java准备工作:代码框架

以下是HelloJava.java的基础准备工作:

import java.io.*;
import java.util.Scanner;

public class HelloJava {
	public static void main(String[] args)throws IOException{
		Scanner scan = new Scanner(System.in);
			
	}
}

1.2.2 Java框架详解(在程序中的作用)

import java.io.*;
import java.util.Scanner;

解析:这两个语句名为import语句,是打开头文件的方法。

public class HelloJava

解析:程序主体,此处的HelloJava可以替换成任意类名,但必须和文件名统一。

public static void main(String[] args)

解析:程序的入口,此处的String[] args 也可以写成 String args[]。 public:访问修饰符 stutic:关键字 void:返回值类型

String[] args

解析:String是程序的字符串,args是程序的数组

部分没有讲到的语法会在后续补充。

2.Java变量

2.0 为什么要单独提到Java变量?

因为Java变量十分复杂。

2.1 数据类型

2.1.1 int

int 的存放类型是整型。 示例如下:

int a = 2;

2.1.2 double

double 的存放类型是浮点型。 示例如下:

double b = 3.14;

2.1.3 char

char 的存放类型是字符型。 示例如下:

char c = 'J';

2.1.3 String

String 的存放类型是字符串型。 示例如下:

String s1 = "Java";              // String 直接创建
String s2 = "Java";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Java");   // String 对象创建
String s5 = new String("Java");   // String 对象创建

caution: String 首字母须大写。

2.1.4 byte

byte 的存放类型是字节型。 示例如下:

byte e = 11;

caution: byte与int的区别 1、byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。 2、int是整型数据类型,是有符号型的,占用4个字节,大小范围为:-2147483648到2147483647。

注意:Java变量在没有赋初值时不支持自增或自减。

2.2 变量类型

2.2.1 局部变量

Main.java源代码:

public class Main {
	  public static void main(String[] args) throws IOException {
				int a;
		}
}

此处的a称为Main.javamain()函数的局部变量. 局部变量:在方法/构造方法/语句块中的变量.

2.2.2 成员变量

Main.java源代码:

public class Main {
		int a;
	  public static void main(String[] args) throws IOException {
				
		}
}

此处的a称为Add方法中的成员变量. 成员变量:定义在类中,方法体之外,创建对象时实例化.

2.2.3 类变量

Main.java源代码:

public class Main {
		static int a;
	  public static void main(String[] args) throws IOException {
				
		}
}

此处的a称为类变量. 类变量:定义在类中,方法体之外。

2.2.4 caution成员变量与类变量的区别

类变量前需要添加静态修饰符static,而成员变量不需要.、

2.3 new语句

这是一个简单的语法点.在声明字符串时可以用到.示例如下:

String str = new String("Java");

这时,String类变量str的值就变成了Java

3.Java头文件

3.1 头文件中的引用

Main.java

import java.io.*;
import java.util.*;
import java.util.Scanner;

public class Main {
		public static void main(String[] args) throws IOException {
				;
		}
}

在Java中,头文件的应用格式:"import 文件名;",示例如下:

import java.io.*;

3.2 头文件的分类

3.2.1 全部引用

Main.java

import java.io.*;

这是引用java.io的全部文件,全部引用需要在分号前加上.*.

3.2.2 局部引用

Main.java

import java.util.Scanner;

这条语句是引用java.util中的Scanner文件,后面不需要加.*.

3.3 头文件的时间复杂度

java头文件的时间复杂度非常高,再加上语言性能根本没有C++之类的语言高,所以能不加头文件就尽量不要加.

3.4 如何在不加头文件的情况下使用相应功能

Main.java

public class Main {
		public static void main(java.lang.String[] args) throws java.io.IOException {
			java.util.Scanner scan = new java.util.Scanner(System.in); 
		}
}

在这段代码中,throws java.io.IOException原本可以写成throws IOException,但因为没有加上Scanner头文件,所以在语句中需要写出相应头文件的路径。java.util.Scanner scanjava.util.Scanner(System.in)也是如此。 注意:不要怕忘记头文件路径,大多数编译器都有自动补全功能。

4.Java的输入与输出

4.1Java的输出

Main.java

public class Main {
	public static void main(java.lang.String[] args) throws java.io.IOException {
		System.out.println("Hello println!");
		System.out.print("This is the first print!");
		System.out.print("This is the second print!");
	}
}

输出结果:

Hello println!
This is the first print!This is the second print!

Main.java中,出现了两种不同的函数,分别是printlnprint函数,对比一下两个函数,我们会发现一下几点:

  1. 相同点
  • 他们都在System派生类中
  • 他们都在out类中
  1. 不同点
  • println函数输出后会在末尾添加一个换行,所以System.out.println("Sth");等价于System.out.print("Sth\n").
  • print函数输出后则不会主动添加换行

4.2 Java的输入

4.2.1 头文件

Java的输入和输出截然不同,不加路径的情况下需要加上以下头文件:

import java.util.Scanner;

注意:无论在任何情况下,都不建议加上头文件,直接写出路径即可

4.2.2 Scanner类与System.in

Main.java

public class Main {
	public static void main(java.lang.String[] args) throws java.io.IOException {
		java.util.Scanner scan = new java.util.Scanner(System.in);
		
		scan.close();
	}
}

这里的scan变量就是Scanner类中的变量,并且用我们前面讲到的new语句声明. 这里的System.in是Scanner()函数的一种打开方式,也是最稳定的一种. scan.close就是让scan停止读取键盘。

4.2.3 输入方式

Main.java

public class Main {
	public static void main(java.lang.String[] args) throws java.io.IOException {
		java.util.Scanner scan = new java.util.Scanner(System.in);
		if(scan.hasNextInt()) { 
			int a = scan.nextInt();
		}
		int b = scan.nextInt();
		scan.close();
	}
}

这里的a和b是两种不同的读取输入方式,涉及到了2个函数 hasNextInt:判断如果scan已经输入完毕,返回true,否则返回false. NextInt:scan的输入值. 在竞赛编程中,推荐使用第二种(b).

4.2.4 更多读取函数

一下是Java所有Scanner类读取函数:

.hasNextInt()
nextInt() //整型
.hasNextDouble()
nextDouble() //双精度浮点型
.hasNextFloat()
nextFloat() //单精度浮点型
.hasNext() .hasNextLine()
.next() .nextLine() //字符串型

注意:.nextLine() .hasNextLine()可以读取\n和空格,但是.next() .hasNextLine()不行。

下次更新:5.Java的if-else语句

欢迎加入我的Java笔记 推荐学习网站:runoob 推荐专业编译器:IDEA 推荐JVM下载:Java

1 comments

  • @ 2022-11-3 18:34:57

    orz,收藏了,谢谢大佬

    • 1