Java快速入门(本文篇幅较长,建议点喜欢后收藏后阅读)
每天学会一个知识点,觉得不错的可以留言关注下,戳我主页获取Java资料(工具包,面试资料,视频教学,包含社群解答)
- Java 是什么?
- Java 的特点:
- 面向对象
- 平台无关(跨平台):
- 简单
- 安全
- 体系结构 - 中性
- 可移植
- 健壮
- 多线程
- 解释型
- 高性能
- 分布式
- 动态
Java安装及环境设置:java的安装及环境配置可以看第三篇
Java 基础语法
- 对象- 对象有状态和行为。例如:狗有状态色,名字,品种以及行为 - 摇头晃脑,吠叫,吃。对象是类的一个实例。
- 类- 类可以被定义为一个模板/蓝本描述该行为/状态及其支持对象类型。
- 方法 - 方法基本上是一个行为。一个类可以包含(拥有)多个方法。 将逻辑写入方法,数据操纵和所有的动作都会被执行。
- 实例变量 - 每个对象都有其独特(唯一)的实例变量。对象的状态是由分配给这些瞬间变量的值来创建。
第一个Java程序:
让我们来看看,以下代码将打印一个简单词语 Hello World
public class MyFirstJavaProgram{
/* This is my first java program.
* This will print 'Hello World' as the output
*/
public static void main(String []args){
System.out.println("Hello World"); // prints Hello World by manongjc.com
}
}
关于Java程序,记住以下几点非常重要。
- 区分大小写 - Java是大小写敏感的,这意味着标识Hello和hello在Java中有不同的含义。
- 类名称 - 对于所有的类名首字母应该大写。如果几个单词来形成一个类的名字,那么每个单词的第一个字母应该大写。例如:class MyFirstJavaClass
- 方法名称 - 所有方法的名称的开始字母应该用小写字母。如果几个单词来形成方法的名称,那么每个单词的第一个字母要大写。例如:public void myMethodName()
- 程序文件名 - 程序文件名应当和类名完全匹配。保存文件时,应该使用类名保存它(记住Java是区分大小写),再追加 '.java' 到文件名称的末尾.(如果文件名和类名不匹配程序将无法编译)。例如:假设“MyFirstJavaProgram”是类名。那么这个文件应当被保存为 'MyFirstJavaProgram.java'
- public static void main(String args[]) - java程序处理是从main()方法开始,这是每一个Java程序开始的必须部分.
Java 标识符:
所有的Java组件都需要一个名字。用于类,变量和方法名称叫做标识符。
在Java中的标识符有几点要记住。它们如下:
- 所有的标识符应该由字母(A至Z或a到z),货币字符($)或下划线(_)组成。
- 标识符的第一个字符之后可以具有字符的任意组合。
- 关键字不能被用作标识符。
- 标识符最重要特点是区分大小写的。
- 合法标识符的示例:age, $salary, _value, __1_value
- 非法标识符的示例:123abc, -salary
Java修饰符:
就像其它语言,它可以改变类,方法等,通过使用修辞符。有两大类的修辞符。
- 访问修饰符 : default, public , protected, private
- 非访问修饰符 : final, abstract, strictfp
我们将会在下一节中研究/学习有关修饰符的更多细节。
Java 变量:
我们会看到下面Java的变量类型:
- 局部变量
- 类变量(静态变量)
- 实例变量(非静态变量)
Java 数组:
数组是存储相同类型的多个变量的对象。然而数组本身就是在堆上的对象。我们将探讨如何声明,构建并初始化在即将到来的章节。
Java 枚举:
枚举是在Java 5.0中才开始进行介绍。枚举一个变量只限于几个预定义值之一。在此枚举列表中的值称为枚举。
通过使用枚举能够减少代码的错误的数量。
因为,如果我们考虑了鲜榨果汁店的一个应用实例将有可能限制玻璃尺寸为小,中,大。这将确保不会允许任何人订制尺寸在小型,中型或大型之外的类型。
例子:
class FreshJuice{
enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest{
public static void main(String args[]){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice. FreshJuiceSize.MEDIUM ;
System.out.println("Size :" + juice.size);
}
}
注:枚举可以声明为它们自己或在类中。方法,变量,构造函数可以也可以在枚举内定义。
Java 关键字:
下面列出了Java中的保留字(关键字)。这些保留字不可以用作常量或变量或任何其它标识符名称。
Java 注释
Java支持单行和多行注释非常类似于C和C++的注释方式。 所有字符在注释里面,都是会被Java编译器忽略。
public class MyFirstJavaProgram{
/* This is my first java program.
* This will print 'Hello World' as the output
* This is an example of multi-line comments.
*/
public static void main(String []args){
// This is an example of single line comment
/* This is also an example of single line comment. */
System.out.println("Hello World");
}
}
Java数据类型
在Java中可用两种数据类型:
- 原始数据类型
- 引用/对象数据类型
原始数据类型
Java语言支持八种原始数据类型。原始数据类型是由语言预定义且由关键字命名。 现在让我们来详细看看八种原始数据类型。
- byte
- short
- int
- long
- float
- double
- boolean
- char
引用数据类型
- 使用类定义的构造创建引用变量。它们是用来访问对象。这些变量被声明为一个不能改变的特定类型。例如, Employee, Puppy 等。
- 类对象,以及各种类型的数组变量,都在参考数据类型。
- 任何引用变量的缺省值是null。
- 引用变量可以用于引用声明类型或任何兼容类型的任何对象。例如: Animal animal = new Animal("giraffe")
Java 字面值
字面值是一个源代码表示的固定值。它们是直接用代码来表示,无需任何计算。
字面值可以被分配给任何基本类型的变量。例如:
byte a = 68;
char a = 'A'
在Java中的字符串字面值规定,就像它们在大多数其他语言的字符序列一样,使用一对双引号包围在它们之间。字符串的例子如下:
"Hello World"
"two\nlines"
"\"This is in quotes\""
java语言支持字符串以及一些特殊的转义序列字符文字。它们是:
Java访问修饰符:
Java提供了一些访问修饰符来设置类,变量,方法和构造函数的访问级别。这四个访问级别分别是:
- 可见到包。不需要修饰这是默认的。
- 只可见到类(private)。
- 可见到所有 (public).
- 可见到包和所有子类(protected).
Java运算符
Java提供了一套丰富的运算符来操作变量。我们可以把所有的Java运算符分成以下几组:
-
算术运算符
假设A=10, B=20,那么
2.关系运算符
3.位运算符:
4.逻辑运算符:
5.赋值运算符:
6.其它运算符
Java语言支持其他一些运算符。
6.1 条件运算符 ( ? : ):
条件运算也被称为三元运算符。这个操作符包括三个操作数,用于计算布尔表达式。 此运算符的目标是决定哪个值应分配给变量。运算符可写为:
variable x = (expression) ? value if true : value if false
6.2 instanceOf 运算符:
此运算符仅用于对象引用变量。此运算符检查对象是否是特定类型(类类型或接口类型)。instanceOf运算被写为:
( Object reference variable ) instanceOf (class/interface type)
Java运算符的优先级:
while 循环:
while循环是一种控制结构,可以让你重复执行任务的若干次。
while循环的语法是:
while(Boolean_expression)
{
//Statements
}
do ... while循环:
do... while 循环类似于 while 循环,不同的是do ... while循环是保证至少执行一次。
do ... while循环的语法是:
do
{
//Statements
}while(Boolean_expression);
for 循环:
for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。
当知道任务要多少次重复,一个for循环是非常有用的。
for循环的语法是:
for(initialization; Boolean_expression; update) { //Statements }
改进Java的for循环:
从Java5中开始增强了for循环。这主要是用于数组。
增强的for循环的语法是:
for(declaration : expression) { //Statements }
break关键字:
关键字break用于停止整个循环。Break关键字必须使用在任何循环或switch语句中。
Break关键字将停止最内层循环的执行,并开始执行的下一行代码块之后的语句。
continue关键字:
continue关键字可以在任一环的控制结构可以使用。它会导致循环立即跳转到循环的下一次迭代。
在for循环中,continue关键字使流程控制立即跳转到update语句。
在while循环或do/while循环,流控制立即跳转到布尔表达式。
if 语句:
if 语句包含一个布尔表达式后跟一个或多个语句。
一个if语句的语法:
if(Boolean_expression)
{
//Statements will execute if the Boolean expression is true
}
if...else 语句:
if语句可以跟着一个可选的else语句,当else执行时,if 中布尔表达式是假的。
if...else 的语法是:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
//Executes when the Boolean expression 3 is true
}else {
//Executes when the one of the above condition is true.
}
嵌套 if...else 语句:
嵌套if-else语句始终是合法的。当要 if , else if , else else语句时有几点要牢记。
一个 if 可以有零或一个else,它必须跟从 else if 之后。
一个 if 可以零个或多个 else if ,它们必须在 else 之前。
一旦一个 else if 条件成功,其他剩余的 else if 或 else 将不会被测试。
嵌套 if...else 的语法如下:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}
}
switch 语句:
switch语句允许一个变量来反对值列表平等的进行测试。每个值被称为一个的情况(case),该变量被接通检查每种情况。
switch 的语法是:
switch(expression){
case value :
//Statements
break; //optional
case value :
//Statements
break; //optional
//You can have any number of case statements.
default : //Optional
//Statements
}
Java 方法:
Java方法是组合在一起来执行操作语句的集合。当调用System.out.println方法,例如,系统实际上是在控制台上显示执行的语句的消息。
在一般情况下,方法的语法如下:
modifier returnValueType methodName(list of parameters) { // Method body; }
方法定义包含一个方法头和方法体。下面是一个方法的所有部分:
- 修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法。这定义了该方法的访问类型。
- 返回类型: 方法可能会返回一个值。returnValueType是方法返回的值的数据类型。有些方法执行所需的操作不返回任何值。在这种情况下,returnValueType是关键字 void.
- 方法名称: 这是该方法的实际名称。方法的名称和参数表共同构成方法签名。
- 参数: 参数就像一个占位符。当调用一个方法,传递一个参数值。这个值被称为实际参数或参数。参数列表表示类型,顺序和方法的参数的数量。参数是可选的;也就是说,一个方法可包含任何参数。
- 方法体: 方法体包含了定义方法执行语句的集合。
Java类和对象:
- 对象 - 对象有状态和行为。例如: 狗有状态颜色,名字,品种以及行为-摆尾,叫声,吃。对象是类的一个实例。
- 类- 类可以被定义为一个模板/蓝本来描述行为/状态,其类型支持对象。
一个类的示例如下:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
一个类可以包含任何下列变量类型。
- 局部变量 . 在方法,构造函数或块里面定义的变量称为局部变量。变量将被声明在方法中并初始化,当方法调用完成变量也将被销毁。
- 实例变量 . 实例变量是在一个类里,在方法以外的变量。这些变量在类加载时实例化。实例变量可以在类内部的任何方法,构造函数或特定类的块中访问。
- 类变量 . 类变量是在一个类中声明的变量,任何方法外,用static关键字。
- 异常处理:
一种捕获异常方法就是使用try和catch关键字组合。 try/ catch块将被置于可能产生异常的代码。一个try/ catch块中的代码被称为保护代码,使用try/ catch语句的语法如下所示:
try
{
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
多个catch块:
一个try块可以跟随多个catch块。多个catch块的语法如下所示:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}
throws/throw 关键字:
如果一个方法不处理检查异常,该方法必须使用关键字throws声明它。 throws关键字出现在方法签名的结束位置。
可以抛出一个异常,用throw关键字在一个新实例化或一个刚刚捕获的异常。 试着去了解 throws 和 throw 关键字的不同。
finally 关键字
finally关键字用于创建一个代码块在try块后面。 finally块中的代码始终执行,无论是否发生异常。
使用finally块,可以运行要执行,无论是在受保护的代码会不会发生发生异常都会被执行,可以放一些清理工作之类的语句(代码)。
finally块必须出现在catch块的结束位置,它的语法如下:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}finally
{
//The finally block always executes.
}