Java小白的入门之路

一、JDK环境的配置

1、自己下载并安装JDK

2、环境变量配置

1、右键桌面上“我的电脑”>>“属性”,在弹出的页面上点击“高级系统设置”。
在这里插入图片描述
2、在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。
在这里插入图片描述
3、在弹出的“环境变量”窗口中,点击下方的“新建”按钮,在弹出的“新建系统变量”窗口中,新建一个名为“JAVA_HOME”的环境变量,变量值为Java的安装路径。本人路径为
在这里插入图片描述
4、设置Path环境变量,该变量已经存在,所以在列表中选择Path,点击下方的“编辑”按钮,在弹出的窗口中添加如下信息:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,然后点击“确认”按钮即可。如图所示:
在这里插入图片描述

5、和JAVA_HOME一样,新建一个名为“classpath”的环境变量,变量值为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。如图所示:
在这里插入图片描述

6、在配置好环境变量后,可以进入cmd中检查Java是否安装正确,检查的命令为 java -version,如图所示:
在这里插入图片描述

二、基础语法

1.最简单输出格式

System.out.println("hello word");

2.标识符

(1)Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。凡是自己可以起名字的地方都叫表示符,都遵循表示符的规则。
(2)Java标识符命名规则:
标识由字母、下划线、美元符或数字组成。
标识符应以字母、下划线、美元符开头。
标识符大小写敏感,长度无限制。
(3)不成文规定:Java标识符选取应注意见名知意且不能与Java语言关键字重命名。
标识符举例:

合法标识符非法表示符
HelloWorldclass
DataClassDataClass#
_12312.3
$xxHello Word

3.关键字

(1)Java中一些赋以特定的含义,用作专门用途的字符串称为关键字。(大多数编译器都会将关键字用特殊方式标出)
(2)所有Java关键字都是小写字母
(3)goto 和 const虽然从未使用,但也被称为Java的关键字保留。

goto 关键字很早就在程序设计语言中出现。事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里;否则跳到那里”。若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许多跳转。然而,goto 是在源码的级别跳转的,所以招致了不好的声誉。若程序总是从一个地方跳到另一个地方,还有什么办法能识别代码的流程呢?随着 Edsger Dijkstra 著名的“Goto 有害”论的问世,goto 便从此失宠。
————————————————
版权声明:本文为CSDN博主「淡紫色呼吸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jinghuayuanli/article/details/16844765

(4)Java关键字一览表
在这里插入图片描述

4.常量

Java的常量值用字符串表示,区分为不同的数据类型:
(1)整型常量如123
(2)实型常量(浮点数)3.14
(3)字符常量’ a’
(4)逻辑常量true,false
(5)字符串常量"HelloWorld"
注、要区分字符常量和字符串常量,字符常量用单引号,字符串常量用双引号。

5.变量

(1)Java变量是程序中最基本的存储单元,其包括变量名、变量类型和作用域。
(2)Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明。例如:

int i = 100;
float j = 3.14f;//在Java中声明float类型时常量后面必须带f,否则编译器会将该变量当成double类型来处理
double h1,h2,h3=3.14;
String s = "HelloWord"

(3)从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每个变量使用前必许先声明,然后必须进行赋值来填充内容,最后才能使用。
(4)变量类型
*按被声明的位置分:
局部变量:方法或语句块内定义变量,方法体内部是指与方法对应的大括号内部。
成员变量:方法外部、类的内部第一的变量。
*按所属数据类型分:
基本数据类型变量。
引用数据类型变量。
a)基本数据类型
在这里插入图片描述
a_1逻辑类型boolean
boolean类型适用于逻辑运算,一般用于程序流控制,其只允许取值true或false,不可以取0或非0的整数代替true或false,这一点和C语言不同。
a_2字符型char
字符型常量为用单引号括起来的单个字符,例如:

char a = 'b'; char c = '国'

Java字符采用Unicode编码,每个字符占两个字节,因而可以用十六进制编码形式表示,例如:

char = '\u0061'//其中Unicode是全球语言同意编码

Java语言中还允许使用转义字符’ \ '来将其后的字符转变成其他的含义,例如:

char e = '\n'//其中‘\n’代表换行符 

a_3整数类型
*Java各整数类型有固定的表示范围和字符长度,其不受具体操作系统的影响,以保证Java的可移植性。
*Java语言整形常量的三种表示形式:
十进制整数,如123,0,325
八进制整数,要求以0开头如0123
十六进制整数,要求以0x或0X开头,如0x123
*Java语言的整形常量默认为int型,声明long型常量可用在后面加‘l’或‘L’,如:

long i = 500l;
long i2 = 33333333333L;后面必须加L,否则出错。

*Java整型的适用范围如下表所示:
在这里插入图片描述
a_4浮点类型
a)与整数类型类似,Java浮点型有固定的表数范围和字段长度,不受平台影响,
b)Java浮点数类型常量有两种表数形式:
I.十进制数形式,如3.14、314.0、314
II.科学技术法形式,如3.14e2、3.14E2、100E-2
III.Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:

double d = 123.456;
float f = 123.456f;//后面必须加f或F,否则出错。

*Java浮点型的适应范围如下表所示:
在这里插入图片描述
b)基本类型转换
b_1boolean类型不可以转换为其他数据类型。
b_2整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循一下原则:
*容量小的类型自动转换为容量大的数据类型,数据类型按容量大小排序如下:
byte,short,char—>int—>long—>float—>double
其中byte,short,char之间不能互相转换,他们三者在计算时首先会转换为int类型。
*容量大的数据类型转换为容量小的的数据类型时要加上强制转换符,但可以造成精度降低或溢出,使用要格外注意。
*有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
*实数型常量默认为double。
*整数常量默认为int。
b_3类型转换举例
在这里插入图片描述
c)运算符
Java语言支持一下运算符:
算数运算符:+,-, * ,/,%,++,- -
关系运算符:>,<,>=,<=,==,!=
逻辑运算符:!,&,|,^,&&,||
位运算符:&,|,^,~,>>,<<,>>>
赋值运算符:=
扩展赋值运算符:+=,-=, * =,/=
字符串连接符:+
c_1自加自减运算符
在这里插入图片描述
c_2逻辑运算符:
逻辑非 !
逻辑与 &
逻辑或 |
逻辑异或 ^
短路与 &&
短路或 ||
在这里插入图片描述
&和&&:当且仅当 a、b 都为 true 时,结果为 true ;
| 和 || : 当且仅当 a、b 都为 false 时,结果为 false ;
^ : a 与 b 相异时,结果为 true ;
注意:逻辑运算符操作的都是boolean类型的变量,而且结果也是boolean类型。
在这里插入图片描述

逻辑运算符实例:
在这里插入图片描述
c_3赋值运算符和扩展赋值运算符
*当 “=” 两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理。注:可以将整型常量直接赋给byte、short、char等类型变量,而不需要进行强制转换,只要不超过其表示范围。
*扩展赋值运算符如下表所示:
在这里插入图片描述
c_4字符串连接符
*“ + ”除了用于算术加运算以外,还可以用于对字符串进行连接操作。如:

int = 1 + 3;
String s = "Hello" + "World";

*“ + ”运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后再进行链接。
c_5表达式
表达式是符合一定语法规则的运算符和操作数的序列。
表达式的类型和值:
|.对表达式中操作数进行运算得到的结果称为表达式的值。
||.表达式值的数据类型即为表达式的类型。
表达式的运算顺序:
|.应按照运算符的优先级从高到低的顺序进行。
||.优先级相同的运算符按照事先约定的结合方向进行。
表达式优先级书下图所示:
在这里插入图片描述
c_6三目条件运算符
三目条件运算符格式:x?y :z
其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算结果为表达式y的值,否则整个运算结果为表达式z的值。
三目运算符的简单实例:
在这里插入图片描述

6.语句

6.1 if语句和switch语句

6.1.1 if语句:
在这里插入图片描述
6.1.2 if语句举例如下:
在这里插入图片描述
6.1.3 switch语句:
在这里插入图片描述

注:case语句后一般要加break;语句;多个case可以合并在一起;default可以省略,但不推荐这样做;Java中switch语句只能探测int类型值。
switch语句举例:
在这里插入图片描述

6.2 for循环语句

6.2.1 for循环语句形式:
for(表达式1;表达式2;表达式3){语句;…}
其执行过程:首先计算表达式1,接着执行表达式2,若表达式2的值为true。则执行语句接着计算表达式3,再判定表达式2的值;依次重复执行下去,直到表达式2的值为false。
注:for语句的三个表达式都可以省略。

for(;;){

}

6.2.1 for循环语句举例:
在这里插入图片描述

6.3 while语句和do-while语句

6.3.1 while语句
语句形式:
while(循环条件){
执行内容
}
执行过程:先判断循环条件,如果等于true则执行其后面的语句,然后再次判断条件并反复执行,直到条件不满足为止。
6.3.2 do-while语句
语句形式:
do{
执行内容
}while(循环条件)
执行过程:先执行内容,在判断循环条件为是否true,否则运行结束。
6.3.3 while语句和do-while语句举例:
在这里插入图片描述

6.4 break语句和continue语句

6.4.1 break语句
break语句用于终止某个语句块的执行,用在循环体语句中,可以直接跳出循环。
break简单举例:
在这里插入图片描述
break还可以加“名字”跳出循环;
在这里插入图片描述
这里就是在break后面加上了OUT,break返回的名字必须是大写!!!
6.4.2 continue语句
continue语句用在循环体内,用于终止某次循环过程(这里和break语句不同,break是直接跳出循环,而continue是跳过这一次循环两者有很大不同),跳过循环体中continue语句下面执行的循环,并开始下一次循环过程。
continue语句举例:
在这里插入图片描述

6.5 return语句

return语句可以从一个方法返回,并把控制权交给调用它的语句。

public void getName{
	return name;
}

三、类与对象

1.面向对象

面向对象语言具有如下特征:

面向对象是一种常见的思想,比较符合人们的思考习惯;
面向对象可以将复杂的业务逻辑简单化,增强代码复用性;
面向对象具有抽象性、封装、继承、多态等特性。

面向对象的编程语言有:C++、Java、C#等

1.1类也是一种对象

类,什么是类,它是相当于一系列对象的抽象,就比如书籍一样,类相当于书的封面,大多数面向对象的语言都使用class来定义类,它告诉你它里面定义的对象都是什么样的,我们一般使用下面来定义类

class ClassName{
	//body
}

上面,你声明了一个class类,现在,你就可以使用new来创建这个对象

//类名     对象名称  = new  类名();
ClassName classname = new ClassName();

一般,类的命名遵循驼峰式,他的定义如下
驼峰式命名法(Camel-Case)又称驼峰式命名法,是电脑程序编写时的一套命名规则(惯例)。正如他的名称ClassName所表示的那样,是指混合使用大小写字母来构造成变量和函数的名字。程序员们为了自己的代码更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。

1.2对象的创建

在Java中,万事万物都是对象。这句话相信你一定不陌生,尽管一切都是看作是对象,但是你操纵的确是一个对象的引用(reference)。在这里有一个很形象的比喻:你可以把车钥匙和车看作一组对象引用和对象的组合。当你想要开车的时候,你首先需要拿出车钥匙点击开锁的选项,停车时,你需要点解加锁来锁车。车钥匙相当于引用,车就是对象,由车钥匙 来驱动车的加锁和开锁。并且,即使没有车的存在,车钥匙也是一个独立的存在的实体,也就是说,你有一个对象引用,但你不一定需要一个对象与之关联,也就是

Car carKey;

这里创建的只是引用,而非对象,但如果你想要使用这个引用时,会返回一个异常,告诉你需要一个对象来和这个应用进行关联。一种安全的做法是,在创建对象引用时同时把一个对象赋给它。

Car carKey = new Car();

在Java中,一旦创建了一个引用,就希望它能与一个新的对象进行关联,通常使用new操作符来实现这一目的。new的意思是,给我一个新对象,如果你不想相亲,就自己new一个对象就好了。

1.3属性和方法

类一个基本的要素就是有属性和方法。
属性也称为字段,他是类的重要组成部分,属性可以是任意类型的对象,也可以是基本数据类型。例如

class A{
	int a;
	Apple apple;
}

类中还应该包含方法,方法表示的是做某些事情的方式。方法其实就是函数,只不过Java习惯把函数称之为方法。这种叫法也体现了面向对象的概念。

方法的基本组成包括 方法名称、参数、返回值和方法体,下面是他的实例

public static void 方法名称(){
	方法体
}
public int getResult(){
	//...
	return 1;
}

其中,getResult就是方法名称,()里面表示方法接收的参数、return 表示方法的返回值,注意:方法的返回值必须和方法的参数类型保持一致。有一种特殊的参数类型——void表示方法无返回值。=={}==包含的代码段被称为方法体。

1.4构造方法

在Java中,有一种特殊的方法被称为构造方法,也被称为构造函数、构造器等。在Java中,通过提供这个构造器,来确保每个对象每个对象被初始化。构造方法只能在对象的创建时期调用一次,保证了对象初始化的进程。构造方法比较特殊,他没有参数类型和返回值,它的名称要和类的名称保持一致,并且构造可以有多个,下面是构造方法的示例

class Apple{
	int sum;
	String color;
	public  Apple(){}
	public  Apple(int sum){}
	public  Apple(String color){}
	public  Apple(int sum,String color){}
}

上面定义了一个Apple类,你会发现这个Apple类没有参数类型和返回值,并且有多个一Apple同名的方法,而且各个Apple的参数列表都不一样,这其实始终多态的体现,后面我们会说。在定义完成构造方法后,我们可以能够创建一个Apple对象了

class createApple{
	public static void main(String[] args){
		Apple apple1 = new Apple();
		Apple apple2 = new Apple(1);
		Apple apple3 = new Apple("red");
		Apple aplle4 = new Apple(2,"color");
	}
}

如上面所示,我们定义了四个Apple对象,并调用了Apple四种不同的构造方法,其中,不加任何参数的构造方法被称默认的构造方法,也就是

Apple apple1 = new Apple();

如果类中没有定义任何构造方法,那么JVM会为你自动生成一个构造方法,如下

class Apple{
	int sum;
	String color;
}
class createAopple{
	public static void main(String[] args){
		Apple apple1 = new Apple();
	}
}

上面代码不会发生编译错误,因为对象包含了一个默认的构造方法。

默认的构造方法也被称为默认构造器或者无参构造器。

这里有一点需要注意的是,即使JVM会为你默认田间一个无参的构造器,但是如果你手动定义了任何一个构造方法,JVM就不会在为你提供默认的构造器,你必须手动指定,否则会出现编译错误。
在这里插入图片描述
显示的错误是,必须提供Apple带有int参数的构造函数,而默认的无参函数没有被允许使用。

1.5方法重载

在Java中一个很重要的概念是方法重载,它是类名的不同表现形式,我们上面说了构造函数,其实构造函数也是重载的一种。另外一种就是方法的重载

public class Apple{
	int sum;
	String color;
	
	public Apple(){}
	public  Apple(int sum){}

	public int getApple(int sum){
		return 1;
	}
	public String getApple(String color){
		return "color"
	}
}

如上面所示,就有两种重载的方式,一种是Apple构造函数的重载,一种是getApple方法的重载。

但是这样就涉及到一个问题,要是有几个相同的名字,Java如何知道你调用的是那个方法呢?
这里记住一点即可。**每个重载的方法都有独一无二的参数列表。**其中包括参数的类型、顺序、参数数量等,满足一种一个因素就构成了重载的必要必要条件。

请记住一下重载的条件:
方法名称必须相同
参数列表必须不同(个数不同、或类型不同、参数类型排列不同等)
方法的返回类型可以相同也可以不相同
仅仅返回类型不同不足以成为方法的重载
重载是发生在编译时的,因为编译器可以根据参数的类型来选择使用哪个方法。

1.6方法的重写

方法的重写与重载虽然名字很相似,但却完全是不同的东西。方法重写描述是对子类和父类之间的。而重载是指的同一类中的。实例代码如下:

class Fruit{
	public void eat(){
		System.out.println("eat fruot");
	}
}

class Apple extends Fruit{
	@Override
	public void eat(){
		System.out.println("eat apple");
	}
}

上面这段代码描述的就是重写的代码,你可以看到,子类Apple中的方法和父类Fruit中的方法同名,所以我们能够推断出重写的原则
重写的方法必须要和父类保持一致,包括返回值类型,方法名,参数列表也都要一样
重写的方法可以使用@Override注解来表示
子类中重写方法的访问权限不能低于父类中的访问权限

2.初始化

2.1类的初始化

上面我们创建出了一个Car这个对象,其实在使用new关键字创建一个对象的时候,其实调用了这个对象无参数的构造方法进行的初始化,也就是下面这段代码

class Car{
	public Car(){}
}

这个参数的构造函数可以隐藏,有JVM自动添加。也就是说,构造函数能确保类的初始化。

2.2成员初始化

Java会尽量保证每个变量的初始化,初始化涉及两种初始化。

(1)一种是编译器默认指定的字段初始化,基本数据类型的初始化。
在这里插入图片描述
一种是其他对象类型的初始化,String也是一种对象,对象的初始化值都为null,其中也包括基本数据类型的包装类。
(2)一种是指定的初始化,例如

int a = 11;

也就是说,指定a的初始化值不是0,而是11.其他基本类型和对象类型也是一样的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Java小白来说,入门路线是一个重要的起点。以下是一个适合新手的Java入门路线: 1. 学习Java基础知识:了解Java的基本语法、数据类型、控制流程等。在这个阶段,可以通过阅读教材、观看教学视频或参加在线课程来系统学习Java基础知识。 2. 熟悉面向对象编程(OOP):学习面向对象编程的概念,掌握Java中的类、对象、继承、封装和多态等概念。通过编写简单的Java程序来巩固对面向对象编程的理解。 3. 掌握Java核心库:学习Java核心库,包括字符串操作、集合框架、输入输出、异常处理等。这些是日常开发中常用的工具和技术,熟悉它们将有助于提高编程效率。 4. 学习Java的高级特性:深入学习Java的高级特性,如多线程、网络编程、反射、注解等。这些知识将为你在实际项目中解决问题提供更多的选择和灵活性。 5. 实践项目练习:通过实践项目来巩固所学知识。选择一些小型的项目,如简单的控制台应用程序或基本的Web应用程序,将所学的Java知识应用到实际中。 6. 深入研究Java框架和工具:选取一些主流的Java框架和工具进行深入学习,如Spring、Hibernate、Maven等。这些框架和工具广泛应用于企业级开发中,掌握它们将有助于提高开发效率和代码质量。 7. 持续学习和实践:Java是一个广阔而深入的领域,不断学习和实践是保持技术竞争力的关键。通过阅读书籍、参与社区讨论、关注最新的技术趋势等方式,持续提升自己的Java技术水平。 以上是一个适合Java小白入门路线,希望能够帮助你顺利学习Java!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [2021最新学习路线,Java快速入门到精通(附Java教学视频)](https://blog.csdn.net/java_0000/article/details/121084261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值