Java基础——初识Java(1)

一、初识Java的main方法

1. 写出第一个Java程序

  1. 首先创建一个.java文件
  2. 然后用sublime打开

如图
在这里插入图片描述
书写程序:

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

分析:
public: 访问修饰限定符。除此之外还有privateprotected
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("%d\n",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_VALUE2^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

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021狮子歌歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值