栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Java基础——初识Java(1)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础——初识Java(1)

文章目录
  • 一、初识Java的main方法
    • 1. 写出第一个Java程序
    • 2. 运行一个Java程序
      • 面试题:JDK,JVM,JRE三者关系
      • 关于Java文件魔数(Magic Word)
    • 3. Java注释
    • 4. Java中的三种打印方式
  • 二、数据类型
    • 1. int(整型)
    • 2. long(长整型)
    • 3. double && float(双精度浮点型)
    • 4. 字符类型
      • char类型
      • byte(字节类型)
    • 5. short(短整型)

一、初识Java的main方法 1. 写出第一个Java程序
  1. 首先创建一个.java文件
  2. 然后用sublime打开

如图

书写程序:

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("hello");
}

分析:
public: 访问修饰限定符。除此之外还有private和protected
class : 类名,定义一个类
HelloWorld: 类的名称,例如int a=10;其中a是整型的名称
void:表示无返回值
static:静态的
String[] args: 形参为一个叫args的数组,数组的写法与C语言不同,int arr[] -> int[] arr
println: 打印并且换行,相当于C语言中的printf, 上面是打印字符串"hello"

args是什么?

args是运行时的命令行参数,作为一个字符串传入main

如图我们执行java命令的时候后面输入一句话,这句话就作为参数传入main方法
它实际上是这样的:

整个public叫做类体,类体由字段和方法组成

注意:

  1. Java中main方法的固定写法
public static void main(String[] args) {
      
}
  1. 一个Java文件中,只能由一个public类,并且这个public类的类名一定要和文件名相同。可以有多个其他类
  2. 类名需要和文件名相同
  3. 编程规范:左括号紧跟当前行
  4. 类名采用大驼峰形式命名 HelloWorld
2. 运行一个Java程序

一个Java 程序的运行:

  1. 首先.java程序经过编译生成.class(字节码) 文件
  2. 然后.class文件被加载到JVM(Java虚拟机)中运行

画图分析:

那么此时可能会问,JVM在哪 ,我什么时候安装的?
这就涉及到一个小面试题了

面试题:JDK,JVM,JRE三者关系

JDK:Java开发者工具(Java Development Kit)
JRE:Java运行环境(Java Runtime Environment)
JVM:Java虚拟机 (Java Virtual Machine)

所以说,Java有着 “一次编译,到处运行” 的口号
这也是Java的跨平台性


运行实例:

首先打开cmd,进入存放Java文件的文件夹:


温馨提示:使用记事本写代码的时候,记得随时保存,然后需要重新编译才能运行当前结果

注意:

  • 不是一个java文件对应一个.class文件,而是每一个类对应一个.class文件
    好处:用到哪一个类就去加载哪一个类,而不是统一放在一个字节码文件中有多个类的字节码
    一般一个java文件只写一个类(习惯)

    如图:每一个类都会生成自己的字节码文件

总结:

  1. 编译:javac命令:javac 文件名.java
  2. 运行:java命令:java 文件名
关于Java文件魔数(Magic Word)

我们用记事本打开上面生成的 HelloWorld.class文件
发现:

每一个.class文件都有一个 cafe babe(咖啡宝贝)
作用:

确定这个文件是否为一个能被虚拟机接受 的 Class 文件

也就是起到标识的作用
而之所以用cafe babe
估计也是高斯林老爷子爱喝咖啡的缘故吧,毕竟Java图标就是一个咖啡

3. Java注释
  1. 行注释 //
  2. 块注释
  3. 文档注释 一般放在文档开头注明作者等信息

注释的常见问题
如图所示,我们把代码中加入注释


会出现如上错误!
原因如下:

如果注释中有中文,Java的GBK格式无法编码
因为java默认以GBK格式编码,而代码默认以utf-8的格式编码!
解决:javac -encoding utf-8 HelloWorld.java

成功!

4. Java中的三种打印方式
	 System.out.print("打印但不换行");
	 System.out.println("打印换行");--最多使用
	 System.out.printf("%dn",10);//格式化打印
二、数据类型
  1. Java中没有所谓的无符号,默认就是有符号!
  2. Java中没有计算数据类型所占字节数的功能(如C中sizeof)
1. int(整型)
  1. Java中的整型int与C语言中不同,C语言中的int在不同位的机器大小是不一样的
    但是由于Java比较安全,Java中的int始终为4字节,与操作系统无关
    因此Java具有可移植性

    查看整型的最大值和最小值
    最大值:Integer.MAX_VALUE – -2^31
    最小值:Integer.MIN_VALUE – 2^31 -1

Java是面向对象的,int为简单类型,简单类型是不能面向对象的,所以把他包装成一个类
这里,Integer 为包装类

  1. 如果整型不进行初始化
    C语言中局部变量不初始化那么其值就是随机值
    而在Java中 不初始化就会报错(Java的安全性比较高)
    Java中没有全局变量这一概念

  2. Java中变量的命名
    数字,字母,下划线,$,小驼峰写法
    不可以数字开头!

  3. 中文可以作为变量名,因为Java用Unicode编码字符集
    因为Unicode中包含中文、拉登文等多种文字
    如图:

2. long(长整型)

long的大小:8字节
long的范围:-2^63 ~ 2^63-1
long的定义:
1. long num=10;
2. long num=10L;

定义long类型,最好写成:long b=10L;(L尽量大写,否则容易看成101)
加L表示为long类型,也可以不加,因为int类型4字节 可以放在8字节的变量b中

注意:java中没有long long类型

3. double && float(双精度浮点型)

double大小:8字节
Java中double和C语言差不多
普通小数默认为double类型

小数除法,必须有一个为小数才可以,否则进行整数除法


float大小:4字节
定义:
float a = 1.1f;必须加f后缀
因为如果不加 :像这样float a=1.5,编译器就会报错
因为相当于把一个8字节的数据放到4字节的float里面

C语言处理这种情况的时候会警告,但是Java安全性更高,不允许这种情况出现,所以Java中不会出现截断警告(8字节放入4字节),只要不匹配直接报错!

注意:

  1. 浮点数精确问题
    小数本身就是一个一个没有精确的数字,只能精确到某几位
    Java的double内存遵循 IEEE-754标准,尝试使用有限的内存空间表示可能无限的小数,势必会存在一定的精度误差
    例子:

可以看到输出的是一个极不精确的数字!

  1. 数据范围
    Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围.
4. 字符类型 char类型
  • ava中char为两个字节 一个汉字两个字节
    所以可以利用char接受汉字
    因为C语言中使用ASCII码表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文

  • char类型赋值97,输出为a
    因为它会把Unicode码解析出来

byte(字节类型)

Java中存在一个变量只有一个字节—byte
byte b = 10;
byte就相当于C语言中的char
范围:-2^7~2^7-1

5. short(短整型)

大小:两字节
范围:-2^15~2^15-1

这个表示范围比较小, 一般不推荐使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号