Java入门篇(二)——Java语言基础(上),互联网 面试官 如何面试


写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。扫码加微信好友进【程序员面试学习交流群】,免费领取。也欢迎各位一起在群里探讨技术。

 

本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构。

 

一、Java程序的基本结构

一个Java程序的基本结构大体可以分为包、类、main()主方法、标识符、关键字、语句和注释等,如下:

 

 1 package hello;                                                // 定义包

 2 

 3 public class Structure {                                    // 创建类

 4 

 5     static int num = 1;                                // 定义类的成员变量

 6     

 7     public static void main(String[] args) {                // 定义主方法

 8         

 9         String str = "http://www.cnblogs.com/adamjwh/";        // 定义局部变量

10         

11         System.out.println(num);                            // 输出成员变量的值

12         

13         System.out.println(str);                            // 输出局部变量的值

14         

15     }

16 

17 }

 

我们来逐一分析一下每一条语句,过多的概念我就不详述了,只说最基本的。

第一条语句“package hello;”定义了Java程序中类所在的包是hello,hello是一个标识符,由程序员自己定义,package是关键字。注意:标识符和关键字区分大小写。

第二条语句“public class Structure”用于创建一个名为Structure的类,类名由程序员自己定义,其中public及class是关键字,关于public和static的用法会在后续篇章中提到。

第三条语句“static int num = 1;”定义了类的成员变量,static和int都是关键字,而num是一个标识符,由程序员自己定义。

第四条语句“public static void main(String[] args)”是类的主方法,Java程序从这里开始执行,除了可以将“String[] args”改为“String args[]”外,不可改变本条语句的任何部分。

第五条语句“String str = "http://www.cnblogs.com/adamjwh”是在主方法中定义了一个局部变量,String是一个类,用于创建字符串对象(说简单点就是说,如果你想创建一条字符串,就使用String类),str是局部变量的名称,为程序员自己定义的一个标识符,而后面引号中的网址是局部变量str的值,“=”为赋值运算符。

第六条语句“System.out.println(num);”是输出语句,这是输出语句的固定写法,注意区分大小写,输出换行为println,不换行为print。

第七条语句同样为输出语句,执行将输出str的值,即http://www.cnblogs.com/adamjwh。

二、标识符和关键字

那么说了这么多是不是觉得好复杂啊,标识符、关键字都是什么。其实标识符可以简单理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。

例如,定义一个变量i并赋值为100,那么我们可以写出如下代码: int i = 100;

这就是一个典型的赋值语句,其中int是定义一个整型数,i就是标识符,由程序员自己起名,但有一定的规则,简单点来说就是由字母、数字、下划线和美元符号组成,第一个字符不能为数字,并且区分大小写,不能为关键字或保留字。

我们可以举几个例子看看,合法标识符如name、user、_u8080、tc_bvt等等,非法标识符如5work、7fix等等。

上面提到的关键字和保留字,是Java语言中已经被赋予特定意义的一组单词,不可作为标识符使用,比如上面代码中的int就是关键字,至于java的关键字有哪些我就不过多的描述了,毕竟网上有很多很详细的介绍,我们还是主要从代码入手。

三、基本数据类型

了解了上面的Java程序的基本结构后是不是对Java有一定的感觉了呢,那么编写程序肯定要用到许许多多数据,那Java中的数据又是如何分类及编写的呢?

在Java中有8种数据类型,其中6种是数值类型,另外两种分别是字符类型和布尔类型,如下:

 

 1 public class Type {

 2     

 3     /* 整数类型 */

 4     byte myByte = 45;                // byte型变量,占一个字节,取值范围-128~127

 5     short myShort = 100;            // short型变量,也即短整型,占两个字节,取值范围-32768~32767

 6     int myInt = 450;                // int型变量,也即整型,占四个字节,取值范围-2147483648~2147483647

 7     long myLong = 45261636L;        // long型变量,也即长整型,占八个字节,取值范围-9223372036854775808~9223372036854775807

 8     

 9     /* 浮点类型 */

10     float myFloat = 15.621F;        // 单精度浮点型,占四个字节,结尾必须加'F'或'f',如果不加自动定义为double型变量,取值范围1.4E-45~3.4028235E-38

11     double myDouble = 15.621D;        // 双精度浮点型,占八个字节,结尾可以加'D'或'd',也可不加,取值范围4.9E-324~1.7976931348623157E-308

12     

13     /* 字符类型 */ 

14     char myChar = 'a';                // 字符类型变量,用于存储单个字符,占两个字节,需用单引号括起来

15     

16     /* 布尔类型 */

17     boolean myBoolean = true;        // 布尔类型又称逻辑类型,只有true和false两个值,分别代表“真”和“假”

18 }

 

当我们要定义一个变量的时候,先判断变量的数据类型,再从上方8种类型中选择合适的类型使用即可,定义方法就如上方代码,以“[数据类型] [变量名] = [值]”的形式即可,其中变量名需自起名,满足上面提到的标识符的几个条件。

在字符类型中还有一种特殊的字符,以反斜线“”开头,后跟一个或多个字符,具有特定的含义,叫做转义字符。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转义字符含义
ddd1~3位八进制数据所表示的字符,如%6
dxxxx4位十六进制所表示的字符,如1
\'单引号字符
\反斜杠字符
 垂直制表符,将光标移到下一个制表符的位置
 回车
 换行
退格
换页

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转义字符一般多用于输出,比如“ ”回车换行,“ ”移到下一制表位,如果想要输出单引号、双引号、下划线等字符时,也需要用转义字符进行输出。

四、变量与常量

刚刚我们提到了变量,接下来就说一下什么是变量和常量。在程序执行过程中,其值不能改变的称为常量,其值能改变的称为变量。变量与常量的声明都必须使用合法的标识符,所有变量与常量只有在声明之后才能使用。下面举一个声明变量的例子:

 

int age; // 声明int型变量 

char c = 'J' // 声明char型变量并赋值

 

既然叫变量那肯定是能改变的,现在我们对变量进行一下改变试试:

 

 1 public class Variable {

 2 

 3     public static void main(String[] args) {

 4         int num = 10;                                // 定义一个变量num,并赋给初值10

 5         System.out.println("num的初值为:"+num);        // 输出当前变量num的值为10

 6         

 7         num = 100;                                    // 将100赋给num

 8         System.out.println("num现在的值为:"+num);        // 输出现在变量num的值为100

 9     }

10 

11 }

 

上方是一段测试代码,我们首先定义一个变量,起名为num,然后对它赋一个初值10,再对这个变量赋值为100,看两次值的变化,运行结果如下所示:

由此可以看出变量是在运行过程中其值可以改变。

而常量在整个程序中只能被赋值一次,需通过final关键字进行限定,如 final double PI = 3.1415926; ,为定义一个常量,名为PI(圆周率),我们如果单独定义一个变量是“double PI = 3.1415926;”,现在定义一个常量就是在double前加一个final关键字进行限定即可。

看到这里,是不是对Java的声明及定义有一些了解了呢?也许在之前大家也都见到了有些变量前有static这个关键字,它有什么用呢?这里就要说的变量的有效范围了。

变量的有效范围是指程序代码能够访问该变量的区域,若超出变量所在区域访问变量则编译时会出现错误。可分为“成员变量”和“局部变量”。

在类体中定义的变量被称为成员变量,成员变量在整个类中都有效,分为静态变量和实例变量两种。

 

class var {

    int x = 45;                 // 定义实例变量

    static int y = 90;        // 定义静态变量
}

 

其中x是实例变量,y是静态变量。如果成员变量的类型前面加上static,就被称为静态变量,静态变量的有效范围可以跨类,甚至可达到整个应用程序之内,也可用“类名.静态变量”的方式在其它类中使用(具体会在今后的篇幅中出现,想了解的可先行查阅资料)。

而在类的方法体中定义的变量(即“{”与“}”之间的声明变量)称之为局部变量。只在当前代码块中有效,简单点来说就是只在其所定义的大括号中有效。下面举一个例子:

 

 1 public class Val {

 2 

 3     static int times = 3;                                    // 定义成员变量times

 4     public static void main(String[] args) {

 5         int times = 4;                                        // 定义局部变量times

 6         

 7         System.out.println("times的值为:" + times);            // 将times输出

 8         System.out.println("静态变量times的值为:" + Val.times);        // 输出静态变量

 9     }

10 

11 }

 

输出结果为:

从这段代码可以看出,首先在main方法外定义了一个成员变量times,并且是一个静态变量,而在main方法内又定义了一个局部变量times。这里有人就会问了,变量名不是不能相同吗?注意,这里第一个times是成员变量,作用范围是针对于整个类而言,而第二个times是局部变量,只在main方法内有效,所以两个重名并不冲突。但如果我们直接输出times,如第一个输出,输出结果为4,是局部变量起了作用,因为当局部变量与成员变量名字相同时,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。如果我们想调用成员变量,需要使用“类名.静态变量”调用,如第二个输出,类名为Val,静态变量名为times,用“Val.times”即可调用静态变量的值为3。

五、代码注释

注释可以提高程序的可读性,注释包含的文字不会对程序产生任何影响,在Java中,代码注释主要有以下几种:

1. 单行注释

“//”为单行注释标记,从“//”开始到换行为止的所有内容均被注释而被编译器忽略。

 

// 这是一条单行注释

 

2. 多行注释

“/* */”为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容,可以换行。

 

/*

    注释内容1

    注释内容2

    ......

*/

 

在多行注释中可以嵌套单行注释,比如下面的用法是正确的:

 

/*

    名称:博客园    // 时间:2018-1-20

*/

 

但在多行注释中不能嵌套多行注释。

3. 文档注释

“/** */”为文档注释标记。符号“/**”与“*/”之间的内容均为文档注释内容。当文档注释出现在任何声明之前时,会被Javadoc文档工具读取作为Javadoc文档内容。格式与多行注释相同。

 

1 /**

2     * name: Hello World

3     * time: 2018-1-20

4     * author: Adam

5 **/

 

下一篇将继续介绍Java语言基础中的运算符及类型转换。

 


转载:https://www.cnblogs.com/adamjwh/p/8322434.html

推荐内容:
面试题:Java集合面试题(40道) 背1
Java面试集合(二)
两年JAVA程序员的面试总结
Java 开发岗面试知识点
Java面试题—初级(9)
java面试感悟【一】
java高级开发面试总结
史上最全阿里 Java 面试题总结
JAVA SSM框架基础面试题
2年Java开发工作经验面试总结

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值