1、 Java程序的基本结构

JAVA是面向对象的程序设计语言,JAVA程序的基本组成单元是类,类中又包含属性与方法两部分,每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。一个Java应用程序是由若干个类组成的语句package Number为声明该类所在的包,package为包的关键字。

2 、声明、包导入

import 和 package 都是在对字节码文件进行操作,和源码没关系,因为源码是给人看的,字节码才是给机器运行的,对机器而言根本就不存在源码这种东西。

import 是用来指定去哪里找字节码文件,package 是用来指定这个 java 文件编译后的字节码放到指定的目录下。

包导入 import 关键字的作用是:

当该字节码文件在执行过程中,需要用到了本包中没有的字节码文件时,就会主动在当前目录下去寻找 import 关键字指明的字节码文件,import关键字后面接的就是一个类字节码文件的全名。

包声明 package 关键字有以下作用:

从源码的角度来看,按照包名创建相应文件夹来管理 .java 源文件,体现了分包管理的机制,也为 java 程序的权限机制提供了必要条件。

从字节码的角度看,一个类的完整名字(包名.类名)是把包名也包含进去了的。

3、 声明成员变量和局部变量

通常将类的属性称之为类的全局变量(成员变量),将方法中的属性称之为局部变量。全局变量声明在类体中,局部变量声明在方法体中。

全局变量和局部变量都有各自的应用范围。

4、 编写主方法

main()方法是类体中的主方法。该方法从“{”号开始,至“}”号结束。

public、static和void分别是main()方法的权限修饰符、静态修饰符和返回值修饰符,Java程序中的main()方法必须声明为public static void。

String[] args是一个字符串类型的数组,它是main()方法的参数。main()方法是程序开始执行的位置。

5、导入API类库

在Java语言中可以通过import关键字导入相关的类。在JDK的API中(应用程序接口)提供了130多个包,如java.awt、java.io等。

可以通过JDK的API文档来查看这些类,其中主要包括类的继承结构、类的应用、成员变量表、构造方法表等,并对每个变量的使用目的作了详细的描述,因此,API文档是程序开发人员不可或缺的工具。

6、 基本数据类型

1)计算机存储单元

变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?

无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。

而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

1B(字节) = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

bit  电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。

Byte   一个Byte由8 bits 所组成,可代表一个字元(A~Z)、数字(0~9)、或符号(,.?!%&+-*/),是记忆体储存资料的基本单位,至於每个中文字则须要两Bytes。

2)数据类型概述和分类

A:为什么有数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

B:Java中数据类型的分类

基本数据类型

引用数据类型

Java语言提供了八种基本类型(4类8种)。

byte:默认值是 0;

short:默认值是 0;

int:默认值是 0 ;

long:默认值是 0L;("L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。在对long型变量赋值时结尾必须加上“L”或者“l”,否则将不被认为是long型。)

float:默认值是 0.0f;(浮点数不能用来表示精确的值,如货币;在对float型进行赋值的时候在结尾必须添加“F”或者“f”,如果不加,系统自动将其定义为double型变量.)

double:默认值是 0.0d;

(浮点数的默认类型为double类型;double类型同样不能表示精确的值,如货币;在给double型赋值时,可以使用后缀“D”或“d”明确表明这是一个double类型数据,但加不加并没有硬性规定,可以加也可以不加。)

boolean:默认值是 false;

char 字符型:

char类型是一个单一的 16位(2个字节) Unicode 字符;最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);

char 数据类型可以储存任何字符;在定义字符型变量时,要用单引号括起来,例如‘s’表示一个字符,且单引号中只能有一个字符,多了就不是字符类型了,而是字符串类型,需要用双引号进行声明。

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如下:

System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);

System.out.println("包装类:java.lang.Byte");

System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);

System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);

引用类型

在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。

这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。

对象、数组、字符串都是引用数据类型。

所有引用类型的默认值都是null。

注意:

整数默认是int类型,定义long类型的数据时,要在数据后面加L。

浮点数默认是double类型,定义float类型的数据时,要在数据后面F。

3)Java语言支持一些特殊的转义字符序列

符号

字符含义

\n

换行 (0x0a)

\r

回车 (0x0d)

\f

换页符(0x0c)

\b

退格 (0x08)

\0

空字符 (0x20)

\s

字符串

\t

制表符

\"

双引号

\'

单引号

\\

反斜杠

\ddd

八进制字符 (ddd)

\uxxxx

16进制Unicode字符 (xxxx)

4) 数据类型转换

输出各种类型的数据

上溢:当被赋值的变量的值太大而无法存储时,称为上溢。上溢不会警告或报错。

下溢:当浮点数太小而不能存储时,称为下溢,Java 将其近似为0,也不会警告或报错。

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

int + int 其结果为int型

byte + bytebyte类型的变量在进行运算时,会自动提升为int型。

byte + int将byte型隐式转换为int型,然后相加赋值给int型(结果必须为int型)

对于short型,

short + short的结果为int型;

short + byte 的结果也为int型

总结:

在进行混合运算时,byte、short、char不会相互转换,都会自动提升为int类型,其他类型进行混合运算时小的数据类型提升为大的(字节数)。byte、short、char → int → long → float → double

数据类型转换必须满足如下规则:

1. 不能对boolean类型进行类型转换。

2. 不能把对象类型转换成不相关类的对象。

3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

4. 转换过程中可能导致溢出或损失精度,例如:

int i =128; byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

(int)23.7 == 23;        (int)-45.89f == -45

A.隐式数据类型转换(自动类型转换)

/*+: 是一个运算符,做加法运算的。

我们在做运算的时候,一般要求参与运算的数据类型必须一致。

类型转换:

隐式转换

强制转换

隐式转换

数值型数据的转换:byte→short→int→long→float→double。

字符型转换为整型:char→int。*/

public classTypeCastDemo {public static voidmain(String[] args) {//直接输出了运算的结果

System.out.println(3 + 4);//定义两个int类型的变量

int a = 3;int b = 4;int c = a +b;

System.out.println(c);//定义一个byte类型,定义一个int类型

byte bb = 2;int cc = 5;

System.out.println(bb+cc);//我能不能不直接输出,用一个变量接受呢?//用变量接受,这个变量应该有类型//可能损失精度//byte dd = bb + cc;

int dd = bb +cc;

System.out.println(dd);

}

}

B.强制类型数据转换

强制转换的格式: b = (byte)(a + b);

强制转换的注意事项

* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

/*强制转换:

目标类型 变量名 = (目标类型) (被转换的数据);

不建议强制转换,因为会有精度的损失。*/

public classTypeCastDemo2 {public static voidmain(String[] args) {int a = 3;byte b = 4;int c = a +b;//byte d = a + b;

byte d = (byte) (a +b);

}

}

7、代码注释和编码规范

A.代码注释

用于解释说明程序的文字

类似于C/C++,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。

Java语言提供了3种添加注释的方法,分别为单行注释、多行注释和文档注释。

B: Java中注释分类

单行注释 格式: //注释文字

多行注释 格式: /* 注释文字 */

文档注释 格式:/** 注释文字 */

C: 注释的作用

解释说明程序,帮助我们调试错误

C.编码规范

良好的编码规范会给程序的开发与日后的维护提供很大方便。总结的编码规范如下:

* 每条语句要单独占一行

* 每条命令都要以分号结束

* 声明变量时要分行声明

* Java语句中多个空格看成一个

* 不要使用技术性很高、难懂、易混淆判断的语句

* 对于关键的方法要多加注释

java程序的基本组成单元是_二、JAVA语言基础相关推荐

  1. 怎样让java程序在别的电脑上运行_有关java桌面应用如何在别的电脑上运行

    本人找了很久,终于在某位大神的点播下,明白如何让自己写的java程序,在别的电脑上运行,真正和他人一起分享你成功的喜悦. 首先我们都知道java程序是运行在java虚拟机上的,所以要想运行class文 ...

  2. java判断时间是否在时间段内_具有C语言基础,利用半年时间学习Java是否够用

    首先,对于具有一定C语言基础的同学来说,利用半年的时间来学习Java会有一个比较系统的学习过程,通常也能够达到实习程序员,或者是助理程序员的水平,然后在技术团队中实践一段时间之后,从事专业开发岗位应该 ...

  3. Java程序的类体两部分_一般Java程序的类体由两部分组成:一部分是____,另一部分是____。...

    [单选题]在PowerPoint2010幻灯片中,直接插入*.swf格式Flash动画文件的方法是 [填空题]A企业存在2个辅助生产车间,供电车间和供水车间, 5 月,供电车间共发生耗费 6460 元 ...

  4. java程序中默认包含的是_在 Java 程序设计中,由 Java 编译器默认导入的包是( )_学小易找答案...

    [单选题]22.抑郁发作的核心症状是 ( ) [单选题]有关微卫星的描述正确的是 [单选题]下列哪一种病毒的遗传物质为RNA [判断题]演示播放时用画笔添加的标注会在保存时留下来,将会更改原来的PPT ...

  5. Java程序编译后的扩展名_一个Java源程序经过编译后,得到的文件扩展名一定是.class。...

    关于消防疏散说法错误的是() 所有成熟蛋白质都含有S元素.(5.0分) A: catch the first bus yesterday morning? B: No, I couldn't. 245 ...

  6. 10个适用于Java程序员的有用单元和集成测试工具

    由于我相信程序员和他们的工具一样好,我总是在空闲时间尝试学习和探索新的工具和库,这个列表是该研究的一部分. 在本文中,我将分享10个最好和必不可少的工具和库,它们可以帮助Java开发人员在各种Java ...

  7. java代码优化的方法和准则_编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  8. java程序源代码如何保存到桌面_如何编写JAVA小白第一个程序

    学习上一篇文章之后,确定好JDK和环境变量都成功之后,我们来编写我们第一个java程序命名为HelloWorld.java. 上一篇文章链接:JDK下载与环境变量的安装 桌面上右击,新建一个文本文档 ...

  9. java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...

    在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...

最新文章

  1. datastage配置jdbc_DataStage 错误集(持续更新)
  2. 诺基亚收购阿朗再交易 持股比例将超95%
  3. Android技巧:ListView去掉橙黄底色
  4. centos 内网ip 设置_CentOS7 设置局域网固定IP
  5. 短视频SDK接入(2)---环境搭建
  6. 这项Avatar专利,让我看到了未来苹果生态与AR/VR头显的融合
  7. 微信小程序的事件处理,含BATJM大厂
  8. [AHOI2014/JSOI2014]骑士游戏 深入理解spfa
  9. 一些英文论文中的常用句式
  10. MPII数据集下载缓慢
  11. 将base64格式的字体信息解码成可用的字体文件
  12. java判断日期是否节假日_java 判断日期是否是节假日
  13. 关于java的一些感悟(java优缺点和建议)
  14. 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况
  15. 关于傲梅分区助手之后盘符错乱以及盘符互换的解决办法
  16. 锁定计算机怎么换头像,电脑锁屏头像怎么设置
  17. Webgame是什么?
  18. 《ASP.NET Core 6框架揭秘》实例演示[10]:Options基本编程模式
  19. xml字符串转换为json对象
  20. 魔兽3无法启动此程序因为计算机中丢失,魔兽争霸3没法启动 总提示directx没法初始化...

热门文章

  1. 带外管理及OOB网络
  2. php动漫活动报名资源交流积分兑换系统
  3. OpenCV+Python二维码条形码识别
  4. 我从外包公司离职了…
  5. R-CNN、Fast R-CNN、Faster R-CNN网络结构、框架原理详解
  6. 将 H264 + PCMA 转为MP4格式(RTSP协议)
  7. curl伪造reffer抓取图片资源的方法
  8. 页面上pageX、offsetLeft等的使用方法
  9. python re 匹配
  10. JavaScript设计模式———抽象工厂模式