JavaSE基础知识

342 阅读6分钟

1.Java语言及编程环境

  **1.1Java语言简介**
  
    **Java SE - Java Standa Edition (标准版)**,主要用于普通PC机、工作站的Java控制台或桌面程序的基础开发。
    **Java Me - Java Micro edition (微型版)**,用于移动设备、嵌入式设备上的Java应用程序开发。
    **Java EE  - Java Enterprise Edition (企业版)**, 用于开发、部署和管理企业级、可扩展的大型软件或Web应用。
         **1.1.1Java语言特点**
         
         (1)**简单性**:Java语言虽衍生自C/C++,但它略去了C/C++中指针、运算符重载/多重继承等复杂的概念,并通过自动垃圾收集机制大大简化了程序员的内存管理工作。另外,Java对环境的要求非常低,它的基本解释器及类仅几十个 **KB**,加上标准类库和线程的支持也只有大约200KB。
         
           (2)**面向对象**:Java是一个完全面向对象的语言,其程序设计集中对象及其接口,它提供了简单类型的机制及动态的接口模型。对象中封装了它的状态变量及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承机制,子类可使用父类的方法,实现了实现代码复用。
           (3)**分布式**:Java是面向网络的语言,通过它提供的类库可以处理TCP/Ip协议,用户可以通过URL地址在网络上很方便地访问其他对象。
           (4)**安全性**:因Java不支持指针,一切对内存的访问都必须通过对象的实例来完成,这就有效防止了黑客使用 ”特洛伊“ 木马等欺骗手段访问对象的私有成员,同时也避免了由于指针操作失误导致的程序或系统崩溃。
           (5)**可移植性**。与平台无关的特性使Java程序可以很方便地被移植到不同软硬件平台的计算机上。同时,Java自身的类库也实现了与不同平台的接口,使这些类库更容易移植。
           (6)**高性能**:和其他解释执行的语言不同,Java字节码的设计使计算机能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
           (7)**支持多线程**:多线程机制使应用程序能够并发地执行,同步机制又保证了对共享数据的正确操作。通过使用多线程,程序员可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。
           1.1.2**Java运行机制**
           Java有两个核心的运行机制:一个使Java虚拟机(Java Virtual Machine, **JVM**);另一个使垃圾收集机制(Garbage Collection)。
           1.**Java虚拟机**
           Java虚拟机(JVM)可理解成一个以字码节为机器指令的CPU。首先,Java编译程序将后缀名为.java的源文件程序编译为JVM可执行的代码(后缀名为.class的Java字码节文件)。每种类型的操作系统都有一种对应的JVM,JVM屏蔽了底层操作系统的差异,使Java程序能够得到“一次编译,到处运行”。
           2.**垃圾收集站**
           Java垃圾收集站能够自动回收垃圾,即运行时无用对象占据的内存空间。
   1.2**Java编程环境**
      1.下载JDK8 安装JDK(运行jdk-8uXXX-windows-x64.exe),同时会级联的安装JRE。
      2.**配置环境变量**

在这里插入图片描述
在这里插入图片描述
测试环境变量是否配置成功:windows键 + R ,键入cmd ,输入 javac 命令并回车如果出现“不是内部或外部指令”,则表示环境变量配置存在问题,需要重新配置。 1.2.2 Eclipse集成开发环境

   1.安装 Eclipse
      可以从官网下载:http://www.eclipse.org/downloads/.    ![在这里插入图片描述](https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/3/22/171022578608b703~tplv-t2oaga2asx-image.image)1.3**类的阐述**:
      
      (1)同一个源文件可以定义多个类。
      (2) 编译后每个类都会生成独立的.class文件。
      (3) 一个类中只能有一个主函数,每个类都可以有自己的主函数。
      (4)public修饰的类称为公开类,要求名必须与文件名相同,包括大小              写。
      (5)一个源文件中只能有一个公开类。

1.4 Package包

    **命名规范**:
(1) 类名:HelloWorld、TestPackage、MyPack、TestAnnotation、ToolsA、ToolsB(帕斯卡命名法)
(2) 函数名、变量名:main、run、testMethod、getElementById(驼峰命名法)
(3) 包名:com.qf.teach;  com.qf.teach.bj;(全小写、不以.开头或结尾)
(4)常量:HELLO_WORLD  GET_ELEMENT_BY_ID  
1.6	计算机存储容量的基本单位?
	bit(位-8位等于1个字节) - Byte(1字节) - KB - MB - GB - TB - PB - EB - ZB - YB - BB - NB - DB - CB - XB(都是1024的进制关系)

1.7变量

(1)概念:计算机内存中的一块存储空间,是存储数据的基本单元。
(2)组成:数据类型、变量名、值。
(3)注意: = 代表的是赋值运算符(将等号右边的值,赋值给等号左边的变量)
(4)int = Integer(整数)
1.8**强类型编程语言**:要求变量的类型与值的类型要一致。
	等号左边:int money(存储整数的,所以只能存整数)
	等号右边:100(本身就是整数,只能存到整数的变量里)

不是当前重点:JavaScript前端脚本编程语言(弱类型编程语言),变量是通用的,存什么都可以

1.9数据类型: (1)基本数据类型:

  整数
		byte   1个字节(8位) 取值范围: -128~127
		short  2个字节(16位) 取值范围:-215~215-1
		int     4个字节(32位) 取值范围: -231~231-1
		long   8个字节(64位) 取值范围 -263~263-1
		注意:Java中任何一个整数,默认的类型是int,如果书写的数字超过int的取值范围,即被视为过大的整数。
(2)**小数(浮点数)**:
		float 单精度浮点型 占用内存4个字节 ,小数类型默认为double,如需存入至float变量中,请追加F。
		double 双精度浮点型 占用内存8个字节
		Java中的小数支持科学计数法的 2E3  5E8

(3)布尔型常量

		boolean 取值范围只有 true / false ,非真即假,常用来表达判断的结果。

(4)字符(character)

		char 每一个字符的背后,都有一个数字做代表(对照、参照表---ASCII美国标准信息交换码、Unicode万国码)
		char类型有多种赋值方式:
			char c1 = 'A'; //字符,直接赋值
			char c2 = 65;//整数,对应ASCII编码赋值
			char c3 = '\u0041';//整数,十六进制整数赋值
		注意:char类型也支持整数表现形式,但char类型是无符号数,其实中所有值,均为正数。取值范围:0~65535
 2.0**类型转换**:
     (1)自动类型转换:两种类型相互兼容,目标类型大于源类型。
     (2)强制类型转换:两种类型相互兼容,目标类型小于源类型。通过在源类型前面,加上 (目标类型) ,达到强制转换的目的,但是,有可能失去精度
	如:小数强转为整数,则失去精度,小数点之后的值,无法保留。