java学习笔记(一)--- java基础

一、Java常用术语

  • JDK: 是java语言的软件开发工具包,JDK在包含JRE之外,提供了开发java应用的各种工具,比如编译器和调试器
  • JRE: 包括JVM和JAVA核心类库和支持文件,是java的运行平台,所有的java程序都要在JRE下才能运行
  • JVM: 是JRE的一部分,java虚拟机的主要工作是将java字节码(通过java程序编译得到)映射到本地的CPU的指令集或OS的系统调用。
    JVM会根据不同的操作系统使用不同的jvm映射规则,从而使得java平台与操作系统无关,实现了跨平台的特性

【总结】在实际开发过程中,我们首先编写Java代码,然后通过JDK中的编译程序(Javac)将文件编译成Java字节码,JRE加载和验证Java字节码

  • J2EE: 是Java的企业版,用于企业级的应用服务开发
  • J2SE: 是Java的标准版,用户标准的应用开发
  • J2ME: 是Java的微型版,常用于手机上的开发

【总结】J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。
J2EE、J2SE的区别:

  • J2EE是在J2SE的基础上添加了一系列的企业级应用编程接口.J2EE包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!
  • J2EE主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!

二、第一个Java程序

  • 创建HelloWorld.java 文件
  • 编辑HelloWorld.java文件
1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello! World");
}
}
  • 使用命令行编译和执行程序
1
2
3
4
5
# 将Java源文件HelloWorld编译为class字节码文件。运行javac命令后,如果编译成功,当前目录下会多一个HelloWorld.class的文件。
-> javac HelloWorld.java
# 装载和运行class字节码文件
-> java HelloWorld
Hello! World

三、Java的变量与数据类型

变量是在内存中动态存储值的地方,简单理解,程序的作用就是对变量进行各种运算

Java要求在使用一个变量前要求必须声明它的类型

声明一个变量就是向计算机申请内存来存储值,JVM会根据变量的类型为变量分配相应的存储空间

Java中的数据类型分为两类:

  • 内置数据类型(基本数据类型)【八种基本类型,其中包括六种数字类型(四种整数型,两种浮点型),一种字符类型,还有一种布尔型】

    • byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128(-2^7)~127(2^7-1),默认值0
    • short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0
    • int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
    • long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L
    • float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
    • double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
    • boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
    • char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
  • 引用数据类型

    • 数组
    • 接口

四、基本数据类型和引用数据类型的区别

1、从概念方面来说

  • 基本数据类型:变量名指向具体的数值
  • 引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值

2、从内存构建方面来说

  • 基本数据类型:变量在声明之后java就会立刻分配给他内存空间

    1
    2
    int a; //声明变量a的同时,系统给a分配了空间
    a=12;
  • 引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。

    1
    2
    3
    4
    5
    MyDate today;
    today.day = 14; //错误!因为today对象的数据空间未分配,引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问

    MyDate today;
    today = new Date(); //正确的方式

五、Java的Object类

参考文档:
https://blog.csdn.net/ahafg/article/details/51159919
https://www.cnblogs.com/bekeyuan123/p/7468845.html