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

一、Java程序的基本结构

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

package hello;                                                // 定义包public class Structure {                                    // 创建类static int num = 1;                                // 定义类的成员变量public static void main(String[] args) {                // 定义主方法String str = "http://www.bjpowernode.com/video.html?zh95";        // 定义局部变量System.out.println(num);                            // 输出成员变量的值System.out.println(str);                            // 输出局部变量的值}}

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

  第一条语句“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.bjpowernode.com/video.html?zh95”是在主方法中定义了一个局部变量,String是一个类,用于创建字符串对象(说简单点就是说,如果你想创建一条字符串,就使用String类),str是局部变量的名称,为程序员自己定义的一个标识符,而后面引号中的网址是局部变量str的值,“=”为赋值运算符。

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

  第七条语句同样为输出语句,执行将输出str的值

二、标识符和关键字

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

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

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

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

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

三、基本数据类型

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

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

public class Type {/* 整数类型 */byte myByte = 45;                // byte型变量,占一个字节,取值范围-128~127short myShort = 100;            // short型变量,也即短整型,占两个字节,取值范围-32768~32767int myInt = 450;                // int型变量,也即整型,占四个字节,取值范围-2147483648~2147483647long myLong = 45261636L;        // long型变量,也即长整型,占八个字节,取值范围-9223372036854775808~9223372036854775807/* 浮点类型 */float myFloat = 15.621F;        // 单精度浮点型,占四个字节,结尾必须加'F'或'f',如果不加自动定义为double型变量,取值范围1.4E-45~3.4028235E-38double myDouble = 15.621D;        // 双精度浮点型,占八个字节,结尾可以加'D'或'd',也可不加,取值范围4.9E-324~1.7976931348623157E-308/* 字符类型 */ char myChar = 'a';                // 字符类型变量,用于存储单个字符,占两个字节,需用单引号括起来/* 布尔类型 */boolean myBoolean = true;        // 布尔类型又称逻辑类型,只有true和false两个值,分别代表“真”和“假”
}

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

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

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

四、变量与常量

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

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

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

public class Variable {public static void main(String[] args) {int num = 10;                                // 定义一个变量num,并赋给初值10System.out.println("num的初值为:"+num);        // 输出当前变量num的值为10num = 100;                                    // 将100赋给numSystem.out.println("num现在的值为:"+num);        // 输出现在变量num的值为100}}

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

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

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

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

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

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

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

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

public class Val {static int times = 3;                                    // 定义成员变量timespublic static void main(String[] args) {int times = 4;                                        // 定义局部变量timesSystem.out.println("times的值为:" + times);            // 将times输出System.out.println("静态变量times的值为:" + Val.times);        // 输出静态变量}}

  输出结果为:

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

五、代码注释

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

1. 单行注释  

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

// 这是一条单行注释

2. 多行注释

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

/* 注释内容1 注释内容2 ...... *//* 注释内容1 注释内容2 ...... */

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

/* 名称:知乎 // 时间:2019-4-22 */

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

3. 文档注释

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

1 /**
2     * name: Hello World
3     * time: 2018-1-20
4     * author: Adam
5 **/

来源:博客园

原文链接:Java入门篇(二)--Java语言基础(上) - JAdam

java单引号转义_Java基础入门——Java语言基础(上)相关推荐

  1. java单引号替换_java中把某个字符串中的单引号替换成双引号

    String regexp = "\'"; String str = "'good'"; System.out.println("替换前:" ...

  2. java html 双引号转义,java如何将单引号转义

    java如何将单引号转义 [2021-02-09 22:01:08]  简介: php单引号与双引号的区别:1.单引号和双引号中都可以使用转义字符[\],但只能转义在单引号中引起来的单引号和转义转义符 ...

  3. Java从键盘输入n行字符串_Java十四天零基础入门-Java布尔类型

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java布尔类型 在Java语言中布尔类型的值只包括true和false,没有其他值,不包括1和0,布尔类型的数据在开发中主要使用在逻辑判断 ...

  4. java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 本章节目标: 理解数据类型的作用.Java中包括哪些数据类型?常见的八种基本数据类型都有哪些?会用八种基本数据类型声明变量?什么是二进制?原 ...

  5. 假赋值java_Java十四天零基础入门-Java赋值运算符

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java赋值运算符 赋值运算符目前也是只需要掌握=.+=.-=.*=./=.%=,其它和二进制相关的内容也是到后面遇到的时候再详细学习.赋值 ...

  6. 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式

    [JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...

  7. Java好学吗?零基础入门Java,三个就业方向实现月入过万!

    Java好学吗?零基础入门Java容易吗?据统计,这是很多人学习前最常问也是最关心的问题之一. 不可否认,大家在开始接受新事物的时候都会陷入困境,但学习是循序渐进的,零基础入门Java到底难不难,只有 ...

  8. 视频教程-由浅入深Java零基础入门-Java

    由浅入深Java零基础入门 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure RP8原型设计 ...

  9. 2022年最新最全的Java零基础入门,零基础入门springboot,MySQL的学习

    今天就来开始带领大家零基础入门Java开发 写在前面 为什么学习Java Java用途很广泛,如下图所示,Java可以做很多工作 JAVA语言发展史 2019年3月,JDK12版本发布. 2019年9 ...

最新文章

  1. iOS下JS与OC互相调用(一)--UIWebView 拦截URL
  2. WPF DispatcherTimer(定时器应用) 无人触摸60s自动关闭窗口
  3. 全国各地区最低工资标准情况(截至2020年3月31日)
  4. Go语言学习教程:xorm表基本操作及高级操作
  5. 13新功能_再聊聊灵感盒 -Marginnote 3.6.12/13新功能
  6. 26条安全开车经验 开车20年老司机分享
  7. JDBC连接数据库(一)
  8. 数学歌单:数学虐我千百遍,让我至今没初恋
  9. 寒江的网站基本优化观点
  10. 汇编语言---子程序设计举例(两组数据相加)
  11. symbian VC环境配置及其helloword详解
  12. 亚信数据吴岸城:保险行业大数据应用
  13. 偶然翻开旧日记本,发现了好多的情诗!!!!
  14. STM32/STM8选型手册
  15. HCIP-RS-H12-221题库以及解析(部分)
  16. 平衡二叉树的调整整理
  17. word自动生成目录和页码设置
  18. 苹果计算机使用方法,不知道这10个Mac使用技巧,别说你会用苹果电脑
  19. android touch事件无反应,触摸屏 无响应
  20. 趣头条递交招股书 将冲刺移动内容聚合第一股

热门文章

  1. 大数据(9) - Flume的安装与使用
  2. p2p-如何拯救k8s镜像分发的阿喀琉斯之踵?
  3. 老板让我十分钟上手nx-admin
  4. Azure SQL Database (1) 用户手册
  5. 《SolidWorks 2013中文版机械设计从入门到精通》一1.4 操作环境设置
  6. Linux命令(4):开挂机重启
  7. KeyMob移动广告聚合平台-致力于打造最牛的聚合平台
  8. 深入理解CSS六种颜色模式
  9. PowerMock介绍
  10. Win7 局域网内访问Sql2005