热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java基础知识(三)Java程序基本结构

1、一个简单的示例下面是一个简单的Java程序pubicclassDemo{publicstaticvoidmain(String[]args){System.out.printl

1、一个简单的示例

下面是一个简单的Java程序

pubic class Demo{public static void main(String[] args){System.out.println("Hello, World!");}
}

这个程序的执行结果是在控制台上打印出"Hello,World!",从这个简单的程序,我们可以分析一下Java程序的基本结构

  1. 关键字public被称为修饰符(access modifier),它用于控制程序的其他部分对这段代码(从public后面跟着的第一个'{'到第一个'}')的访问级别
  2. 关键字class这段程序的所有内容都包含在类中
  3. class后面跟着的'Demo'是类名。Java中的类名的命名规则为:首字母以字母开头(一般是大写),后面可以跟字母和任意数字与'_'组合,长度不限,但是不能使用Java的保留字,建议在类命名时使用驼峰命名。
  4. 源代码的文件名强烈建议与类名相同(基本所有的IDE都是这样做的)。
  5. static是静态修饰符,被标识的方法是静态的方法(更多细节后面再讲)。
  6. main方法(或称为函数)是程序的入口函数,根据Java语言规范,main方法必须声明为public(虽然在Java虚拟机规范中并没有要求main方法一定是public,但是并不是所有的Java解释器都可以执行非public的main方法),此外main方法必须是静态的。
  7. void用于表示该方法不需要返回值。
  8. '{'和'}'分别用于标记代码的开始和结束。

当运行编译改程序时,Java虚拟机将从这个类的main方法开始执行,而Demo中main方法使用了System.out对象并调用了println方法,可以看出Java调用方法的语法:object.method(parameters),当然方法也可以没有参数,这依据方法的声明而定。
在这个方法调用中,传入的参数是一个字符串'Hello,World!'。

2、注释

注释的主要用于阐述代码的意图和执行逻辑、执行结构以及一些其他的信息。Java的注释不会出现在.class文件中,只存在与.java文件中,因此我们可以根据自己的需要添加注释,不必担心代码膨胀问题。注释的格式有三种:

  • //text:这是最常用的一种,被其注释的内容从"//"后到行末尾,也称为单行注释。
  • /* text */:多行注释,text即为被注释的内容。
  • /** text */:文档注释,这种注释可以用于自动生成文档(使用javadoc命令)。

3、数据类型

之前我们提到过Java是强类型语言,也就是说我们必须为每一个变量声明一种类型。Java的数据类型可分为两种:基本数据类型和引用数据类型。在Java中有8中基本数据类型(primitive type):

a、整数型:
byte 占 1个字节(8个bit) 范围-128——127
short 占 2个字节(16bit) 范围-2^15——2^15-1
int(默认) 占 4个字节(32bit) 范围-2^31——2^31-1
long 占 8个字节(64bit) 范围-2^63——2^63-1(超int范围時在後面加l,最好寫大L,小l与1太像容易混淆)b、浮点型:(小数)
float单精度 占 4个字节(32bit) 3.4E-38——3.4E+38(书写时在后面加f,如1.2f)最多精确表示7位小数float的数据范围比long大,两者底层存储结构不同IEEE 754 规定 float:从左往右第1位代表符号位,第2-9位代表指数位,0-255,0代表0,255代表无穷大,1-254都減去127, 变为 -126——127第9-32位代表尾数位 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符号位,f是23bit的小数部分,exponent是指数部分)最后結果:(-1)^(sign)*1.f*2^(exponent)double双精度(默认) 占 8个字节(64bit) 范围 最多精确表示15位小数
long double 占16个字节(128bit) c、字符型:
char 占 2个字节(16bit) 范围d、布尔型:
boolean 沒有明确指定的大小(理论上占八分之一个字节),因为一個开关就可以決定true和false(书写時也可在后面加,但一般不加)

4、变量

在Java中,每一个变量属于一种类型(type。在声明变量时要指定类型),示例:

byte a = 12;
short b = 12;
int x=(int)(9.99L);//强制类型转换
int c, w, r = 12;//一条语句可以定义多个变量
long d = 2123453553345345445l;
float e = -9.0f;
double f = 12.2;
char g = 'w';
boolean h = true;

  • 注意,在声明一个变量之后必须使用赋值对变量进行显式初始化,不能使用未初始化的变量(无法通过类型校验)

    int var;var=1;//初始化

5、常量

Java中常量可分为两种:字面值常量和自定义常量

  • 字面值常量:

    字符串常量 用""括起来的内容整数常量 所有整数小数常量 所有小数,操作小数有一定的弊端,小数位不够精确(float和double的特殊数据存储结构)字符常量 用单引号括起来的内容,只能放单个数字,字母或符号(单个汉字也可以)布尔常量 只有true和flase枚举常量 enum 枚举类型名{常量1,常量2,常量3,.......};空常量 null枚举类型的使用:enum Size{SMALL,MEDIUM,LARGE};Size s=Size.MEDIUM;

  • 自定义常量:被final关键字修饰的变量
  • final int A=1;

    final表示这个变量只能被赋值一次,且被赋值之后就不能更改了,一般来说常量名使用大写(注意const是Java的保留字,但是目前并没有被使用)

6、运算符

运算符:对常量和变量进行操作的符号。Java的运算符与C基本一致(运算符的优先级别也和C一致,在此不再赘述):

运算符&#xff1a;对常量和变量进行操作的符号a、算术运算符&#xff1a;一元运算符、二元运算符&#43; ,- ,*,/,%,&#43;&#43;, --&#43;&#43;、--&#xff1a;都是单独使用 整数相除只能得到整数&#xff0c;如果想得到小数&#xff0c;可以把数据&#xff08;至少其中一个&#xff09;变成浮点型%&#xff1a;任何正整数%2结果不是0就是1&#xff0c;可以用来切换条件b、 赋值运算符基本赋值运算符&#xff1a;&#61;扩展的赋&#61;值运算符&#xff1a;&#43;&#61;,-&#61;,/&#61;,%&#61;&#xff08;自动类型转换&#xff09;c、关系运算符 &#61;&#61;,<&#61;,<,>,>&#61;,!&#61;&#xff08;结果为布尔类型&#xff09;d、逻辑运算符&,|,^,!&&、||具备短路的效果&#xff08;左边为false右边就不执行了&#xff1b;左边为true右边就不执行了&#xff09;e、位运算符&、|、^、~&#xff08;按位取反&#xff09;、>>>(左补齐0)、>>(保留符号位)、<<(右补齐0)a^b^b &#61;a;
f、三元运算符&#xff08;关系表达式&#xff09;&#xff1f;表达式1&#xff1a;表达式2

运算符示例&#xff0c;你可以运行一下&#xff1a;

System.out.println(-13%5);//结果-3
System.out.println(b1&#43;&#43;);//结果2
System.out.println(&#43;&#43;b2);//结果4
int x&#61;5,y&#61;6,z&#61;8;
x&#61;x&#43;&#43; &#43; &#43;&#43;x &#43; x&#43;12;// &#43;&#43;、--&#xff1a;放在操作数前面时&#xff0c;先自增自减再参与运算&#xff1b;在操作数后面时&#xff0c;先运算再自增或自减
System.out.println(x);
System.out.println(!true);
System.out.println(x>2&x<32);
System.out.println(x>2|x<12);
System.out.println(x>2^x<30);//异或&#xff0c;相异为真
System.out.println(2>3?1:2);//不使用第三方变量交换变量值
x&#61;x&#43;y;
y&#61;x-y;
x&#61;x-y;//有可能会超出数据范围&#xff0c;损失精度x&#61;x^y;
y&#61;x^y;
x&#61;x^y;//
//其实还是使用第三个变量的最好。。。

7、数学函数与常量

Math类包含了各种各样的数学函数&#xff0c;例如&#xff1a;

double x&#61;Math.sqrt(4);//4^2

如果你需要在程序中频繁使用Math这个类&#xff0c;可能会对在方法前加上Math感到厌烦&#xff0c;此时你可以这样做&#xff1a;

import static java.lang.Math.*;
此时在程序中&#xff0c;你可以直接调用:
System.out.println("4^2"&#43;sqrt(4));

更多细节可以了解一下静态导入。






参考书目&#xff1a;
Core.Java.Volume.I.Fundamentals.10th.Edition.2016.1

转:https://www.cnblogs.com/heqiliao/p/6551102.html



推荐阅读
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
author-avatar
爱你不愿放cwy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有