首页 资讯▪软件 技术•资讯 Java入门

Java入门

[  发表时间:2021-01-07 19:55:27    信息来源:九剑网络  ]

来源:https://blog.csdn.net/Kaiiiiiiiiiiiiii/article/details/112232875?utm_medium=distribute.pc_category.none-task-blog-hot-13.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-13.nonecase&request_id=

  Java概述

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

Java中重要的特性

1.简单性

Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重

载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。

2.面向对象

什么是面向对象? 这里我们用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所使用的工具;而一个“非面向对象的”木匠首先考虑的是所使用的工具。在Java的世界里,一切皆对象。

3.安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防

篡改的系统

4. 高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以(在运行时刻)

动态的翻译成对应运行这个应用的特定cpu的机器码。

当然,Java的特性远不止于此,还有更多,我在这里就不一一赘述了。

Java的运行机制

如图所示

 image.png

这里有一个重要的辨别问题,即区分JDK,JRE和JVM。

JDK是java的开发工具

JRE是java的运行环境

JVM是java的虚拟机

正是因为通过JVM,从而实现了java可以跨平台使用。

下面用一个框图来表示其三者的关系。

 image.png

两个重要的JDK命令

javac 编译命令

java 运行命令

初识Java和main方法

最简单的Java程序

 image.png

mian方法的示例

public class TextDemo {

    public static void main(String[] args) {

        int a = 10;

        System.out.println(a);

    }

}

•1

•2

•3

•4

•5

•6

如上所示,就是一个比较简单的Java程序。

通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:

1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个

类。类的内容必须包含在花括号里面。

2.类:类中带有一个或多个方法。方法必须在类的内部声明。

3.方法:在方法的花括号中编写方法应该执行的语句。

Java中的数据类型

1.变量和类型

变量指的是程序运行时可变的量, 相当于开辟一块内存空间来保存一些数据。类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性。

我们所讨论的 “变量” 主要和我们的 “内存” 这样的硬件设备密切相关的。下图位冯·诺依曼结构原理。

 image.png

1.1整型变量

注意事项:

1.int 表示变量的类型是一个整型。

2.变量名是变量的标识. 后续都是通过这个名字来使用变量。

3.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值。

4.初始化操作是可选的, 但是建议创建变量的时候都显式初始化。

5.最后不要忘记分号, 否则会编译失败。

6.// 表示注释。 注释作为代码的解释说明部分, 不参与编译运行。

public class TextDemo {

    /**

     *

     * @param args    java运行时命令行参数

     */

    public static void main(String[] args) {

        int a = 10;

        System.out.println(a);

        /*int b = 2147483648;//体现了java的安全性,溢出会编译报错*/

        int b = Integer.MAX_VALUE;

        System.out.println(b+1);//负数最小值//并未赋值,所以编译不报错。

        int c = Integer.MAX_VALUE+1;//警告//编译时,Integer.MAX_VALUE未知,所以+1时,编译无法发现。

        System.out.println(c);

•1

•2

•3

•4

•5

•6

•7

•8

•9

•10

•11

•12

•13

 image.png

1.2 长整型变量

long类型

长整型 占8个字节

注意事项:

1.基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long

2.初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以.

3.使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些.

 image.png

能表示最小的数为-263,能表示最大的数为263-1

1.3 双精度浮点型变量

double类型

双精度浮点类型 占8个字节 包装类为Double

浮点类型的存储方式与整型不同,不能单纯的用 2 ^ n 的形式表示数据范围。

 image.png

任何小数,都不是一个精确的数字,而是一个范围。

1.4 单精度浮点型变量

float

单精度浮点类型 占4个字节

Java中默认浮点类型是double类型。定义时,应给数值后面加f即可修改bug。

 image.png

1.5 字符类型变量

char

字符型类型 与C语言不同的是,它占2个字节,因此一个字符占用两个字节,表示的字符种类更多,包括中文。包装类为Character。如下图。

 image.png

运行结果如下 

image.png

1.6 字节类型变量

byte

字节类型,只占1个字节。它能表示的范围为-128~127。包装类为Byte。

 image.png

运行结果如下

 image.png

1.7 短整型变量

short

短整型类型,它占2个字节。取值范围为-215 ~ 215-1,这个表示范围比较小,一般不推荐使用。当然,存在即合理,我们也会有用到它的地方。包装类为Short。

 image.png

运行结果如下

 image.png

1.8 布尔类型变量

与C语言不同的是,C语言中无布尔类型;而Java中存在布尔类型。

boolean

注意事项:

1.boolean 类型的变量只有两种取值, true 表示真, false 表示假。

2.Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。

3.boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定。

 image.png

运行结果如下

 image.png

1.9 字符串类型变量

String

1.Java 使用 双引号 + 若干字符 的方式表示字符串字面值。

2.和上面的类型不同, String 不是基本类型, 而是引用类型。

3.字符串中的一些特定的不太方便直接表示的字符需要进行转义。

 image.png

运行结果如下

 image.png

常见的转义字符如下

\n换行

\t水平制表符

'单引号

"双引号

\反斜杠

字符串的 + 操作, 表示字符串拼接,如下

 image.png

 image.png

还可以用字符串和整数进行拼接:

 image.png

运行结果如下

 image.png

正因为字符串的 + 操作, 表示字符串拼接,所以结果为result = 1020,而非30。

至此数据类型的总结基本完毕。

 image.png

特殊的包装类

char的包装类为Character

int 的包装类为Integer

其他基本数据类的的包装类,均为其关键字的首字母大写。

1.10 变量的作用域

也就是该变量能生效的范围, 一般是变量定义所在的代码块(大括号)。

1.11 变量的命名规则

硬性指标:

1.一个变量名只能包含数字, 字母, 下划线

2.数字不能开头。

3.变量名是大小写敏感的。即num和Num是两个不同的变量。注意:虽然语法上也允许使用中文/美元符($)命名变量,但是强烈不推荐这样做。

软性指标:

1.变量命名要具有描述性, 见名知意。

2.变量名不宜使用拼音(但是不绝对)。

3.变量名的词性推荐使用名词。

4.变量命名推荐小驼峰命名法,当一个变量名由多个单词构成的时候,除了第一个单词之外,其他单词首字母都大写。

1.12 常量

上面讨论的都是各种规则的变量,每种类型的变量也对应着一种相同类型的常量。常量指的是运行时类型不能发生改变。常量主要有以下两种体现形式:

1.字面值常量

10 // int 字面值常量(十进制)

010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8

0x10 // int 字面值常量(十六进制) 由0x 开头0x10也就是十进制的 16

10L // long 字面值常量. 也可以写作 10l (小写的L)

1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D

1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2

1.0f // float 字面值常量, 也可以写作 1.0F

true // boolen 字面值常量, 同样的还有 false

‘a’ // char 字面值常量, 单引号中只能有一个字符

“abc” // String 字面值常量, 双引号中可以有多个字符.

2.final 关键字修饰的常量

final int a = 10;

a = 20; // 编译出错. 提示 无法为最终变量a分配值

常量不能在程序运行过程中发生修改

1.12 类型转换

Java 作为一个强类型编程语言,当不同类型之间的变量相互赋值的时候,会有教严格的校验。

1.int 和 long/double 相互转换

long 表示的范围更大,可以将 int 赋值给 long,但是不能将 long 赋值给 int。

double 表示的范围更大,可以将 int 赋值给 double,但是不能将 double 赋值给 int。

2.int 和 boolean 相互转换

int 和 boolean 是毫不相干的两种类型,不能相互赋值。

3.int 字面值常量 给 byte 赋值

byte 表示的数据范围是 -128~+127, 256 已经超过范围, 而 100 还在范围之内。

使用字面值常量赋值的时候,Java 会自动进行一些检查校验,判定赋值是否合理。

使用强制类型转换

强制类型转换不是一定能成功,互不相干的类型之间无法强转,例如,int类型与 boolean 类型无法实现强转。

1.不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型。

2.如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但是可能精度丢失。

3.将一个字面值常量进行赋值的时候,Java 会自动针对数字范围进行检查。

1.13 理解数值提升

int 和 long 混合运算

当 int 和 long 混合运算的时候,int 会提升成 long,得到的结果仍然是 long 类型,需要使用 long 类型的变量来接收结果。如果非要用 int 来接收结果,就需要使用强制类型转换。

byte 和 byte 的运算

byte 和 byte 都是相同类型, 但是出现编译报错.。原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int ,再进行计算,得到的结果也是 int,这是赋给byte类型的 c,就会出现上述错误。

由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据。为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型,,会先提升成 int, 再参与计算。

小结:

1.不同类型的数据混合运算,范围小的会提升成范围大的.

2.对于 short,byte 这种比 4 个字节小的类型,会先提升成 4 个字节的 int ,再运算。


声明:本网(www.9jit.com)所刊载的所有信息,包括文字、图片、课件、软件、声音、相片、视频、图表,广告、商业信息及电子邮件的全部内容,除特别标明之外,版权归九剑IT网站所有。未经本网的明确书面许可,任何单位或个人不得以任何方式作全部或局部复制、转载、引用,再造或创造与该内容有关的任何派生产品,否则本网将追究其法律责任。 本网凡特别注明稿件来源的文/图等稿件为转载稿,本网转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如对稿件内容有疑议,请及时与我们联系。 如本网转载稿涉及版权问题,请作者在两周内速来电或来函与我们联系,我们将及时按作者意愿予以更正。
× 关注公众号 送VIP邀请码

关注公众号 送VIP邀请码

会员登陆

captcha
下次自动登陆 忘记密码?
×
—— 还没帐号?点击注册! ——