[JavaSE-01]基本常识

1、Java基本了解

  Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

1.1 平台独立与可移植性原理

  我们编写的JAVA程序并不是直接对操作系统进行使用,而是通过一个叫做JVM(Java Virtual Machine)JAVA虚拟机的中间虚拟机来使用操作系统的资源,即只要在不同平台安装对应的JVM,我们写的JAVA代码可以运行在任何系统上,这就是JAVA语言跨平台实现的原理。
在这里插入图片描述

1.2 JDK和JRE的组成和作用

  JRE:是JAVA程序运行时的环境,包含JVM和所需要的核心类库。如果我们要运行一个写好了的JAVA程序,只需要安装JRE即可。
  JDK(Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具。如果我们要开发一个全新的JAVA程序,就必须安装JDK。
在这里插入图片描述

2、HelloWorld入门

  无论再复杂的JAVA程序,整体开发流程就三个步骤:编写、编译、运行。
在这里插入图片描述
  大部分的高级编程语言都采用模块化编程,即实现不同功能的代码放在不同的文件中,然后给其他代码调用。Java模块化的核心就是jar包,所谓jar包,就是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。

2.1 创建java源程序

  首先在电脑任意地方新建一个.java文件,比如我在E:\CloudMusic下新建一个FunA.java文件。
在这里插入图片描述
  FunA.java文件内容为:

package cn.klb;

public class FunA{
    public void out(){
        System.out.print("HelloWorld...");
    }
}

  于是,一个java源代码就创建好了,下一步就是编译。

2.2 编译java源程序

  打开命令行,进入到源代码所在路径,执行命令:

E:\CloudMusic>javac -d . FunA.java

  然后就可以在该路径下生成一个文件夹:
在这里插入图片描述
  其结构为:

|-cn
	|-klb
		|-FunA.class

  生成了好.class字节码文件,下一步就是打包成jar包。

2.3 生成jar包

  继续在当前路径下,执行命令:

E:\CloudMusic>jar -cvf myjar.jar cn

  dos界面会有以下输出:
在这里插入图片描述
  这时看到jar包已经生成了。
在这里插入图片描述
  生成好了jar包后,我们统一把jar包放在一个位置,比如我放在D:\JarPackages路径下
在这里插入图片描述

2.4 编写主程序

  有了jar包,我们可以调用jar包来重用代码,首先在任意地方创建主程序(源程序),比如在C:\Users\Meumax\javatest路径下创建一个HelloWorld.java,内容如下:

import cn.klb.FunA;

class HelloWorld{
	public static void main(String[] args){
		FunA a = new FunA();
		a.out();
	}
}

  此时,我们调用javac编译主程序就得注意了,我们import了一个类FunA,这个类在cn.klb包里,那么,我们编译的时候就要使用-classpath告诉编译器cn包的位置,否则编译会显示找不到FunA。
  进入主程序所在路径,cmd执行编译主程序命令:

C:\Users\Meumax\javatest>javac HelloWorld.java -classpath D:\JarPackages\myjar.jar

  编译后,会在该路径下生成一个HelloWorld.class字节码文件。
在这里插入图片描述

2.5 运行主程序

  生成了HelloWorld.class字节码文件,我们就可以用java命令去执行它,因为主程序里面import了一个类,所以java执行的时候也要带上-classpath,告诉解释器这个导入的类在哪里。
  cmd执行命令:

C:\Users\Meumax\javatest>java -classpath .;D:\JarPackages\myjar.jar HelloWorld

  运行结果如下:
在这里插入图片描述
  需要注意的地方就是,编译和解释两个阶段的命令参数-classpath有区别,编译(执行javac命令)的时候,-classpath放在要编译文件的后面,且不用包含当前路径。而解释阶段(执行java命令)则-classpath放在要解释文件的前面,且要包含当前路径,当前路径用一个.表示。

3、JAVA关键字的含义

  关键字指的是在JAVA中具有特殊含义的单词,比如上面源代码中的public、class、static、void等,这些单词是JAVA用掉了的,我们在自定义变量、方法时不能再使用,无需死记硬背,在IDE中会有特殊颜色区分,只需要了解即可。

4、标识符的含义

  标识符是区别于关键字的,比如我们自定义的类的名字、方法的名字和变量的名字等,都是标识符,对于规范编写JAVA,有以下硬性规定和软性要求:
  硬性规定:标识符可以用英文26个字母(区分大小写)、0-9数字、$美元符号和_下划线组成。不能用数字开头,更不能是关键字。
  软性建议:类名用首字母大写,后面每个单词首字母大写。方法名和变量名首字母小写,后面每个单词字幕大写。示范如下:

public class HelloWorld;
public int toString();
int myNumber;

5、JAVA常量

//整数常量包含所有的整数
0, 1, 2

//小数常量包含所有的小数
0.0, -1.2, 2.55

//字符常量由单引号引起来,只能写一个字符,必须有内容,不能是'',可以是' ',即中间有一个空格
'a','我', ' '

//字符串常量由双引号引起来,可以写多个字符,也可以不写
"", " ", "你好呀", "我", "123"

//布尔常量只有两个值
true, false

//空常量
null

6、JAVA基本数据类型

  变量指的是可以变化的量,由以下基本类型组成:

数据类型关键字内存占用取值范围
字节型byte1个字节-27 ~ 27-1
短整型short2个字节-215 ~ 215-1
整形int(默认)4个字节-231 ~ 231-1
长整型long8个字节-263 ‬ ~ 263-1
单精度浮点数float4个字节1.4013×10-45 ~ 3.4028×1038
双精度浮点数double(默认)8个字节4.9×10-324 ~ 1.7977×10308
字符型char2个字节0 ~ 216
布尔型boolean1个字节true, false

  这里解释一下取值范围的计算,以字节型为例,一个字节有8位,第1位是符号位,1代表负数,0代表正数。所以:
  一个字节最小正数二进制是0000 0000=0
  最大正数二进制是0111 1111 = 64+32+16+8+4+2+1=127
  最大负数二进制是1111 1111 = -1
  最小负数二进制是1000 0000→ 反码:1111 1111→ 补码: - {(1+2+4+8+16+32+64)+1} =-(127+1)=-128。
  其他的以此类推。

7、定义变量

//定义一个变量的格式为:数据类型 变量名 = 数据值;
byte b = 100;
short s = 1000;
int i = 123;
long l = 1234567899990L;
float f = 5.5F;
double d = 8.5;
char c = 'A';
boolean b = true;

  注意,在JAVA中,整数都默认为int,小数都默认为double,当我们执行byte b = 100时,其实这个100是int类型的,先执行了数据类型转换为byte,然后才赋值给b。
  占用字节数少的类型可以自动转换为占用字节数多的(小瓶子装的水倒进大瓶子)不会产生任何错误,但是当字节数多的转为字节数少的,就容易出问题了,如果字节数多的类型变量存储的值没有超过字节数低的(5L容量瓶子装着1L的水,想要倒进2L容量的瓶子)就不会报错,但是超过了(5L容量的瓶子装着3L的水,想要倒进2L容量的瓶子)就会报错。
  所以,在执行long l = 1234567899990L时这个L就是一个标记,说明这个数字是long类型,而不是int,就可以完成赋值操作,如果没有这个标记,而1234567899990由超出了int的范围,就直接报错了。float f = 5.5F也是同理,虽然这里F去掉也不会报错,因为5.5没有超出float的范围,但是以后我们定义float和long变量时最好加上,以防万一。

8、总结

  Java跨平台的原理在于程序和操作系统中间有一个JVM,只要在不同平台安装对应的JVM,就可以实现代码的跨平台运行。
  要深刻理解java代码从源代码到执行的一系列具体流程,包括jar包是什么、怎么使用jar包、编译和解释分别什么意思等。
  关键字是系统占用,自定义的变量名、方法名以及类名等都不能是关键字。JAVA有8个基本数据类型,分别是byte、short、int、long、float、double、char以及boolean,除了基本数据类型,其他的都是引用数据类型,基本数据类型的值就是其本身,引用类型的值是其所对应对象的地址。
  (本章内容为自学笔记,转载请注明来源,有错误地方欢迎评论区指出。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值