Java基础
什么是JAVA
JAVA :一种编程语言、一种开发环境、一种应用环境、一种部署环境
Java 主要技术分支
JavaSE【J2SE】:Java标准版,主要用于桌面应用或者局域网应用开发 Java
语言核心类: 数据库连接, 接口定义,输入/输出和网络编程
JavaEE[J2EE]:java企业版,主要用于企业级电子商务应用开发
包含JAVA SE 中所有类,并且还包含用于开发区企业级应用的类,如EJB, Servelet, JSP. XML… J2EE目前已成为开发电子商务应用的事实标准 企业级的概念:跨地域性、数据来源复杂性
JavaME[J2ME]:java精简版,主要用于受限环境开发
Java的三种核心机制
Java虚拟机JVM
JVM创造一个内部运行时系统(runtime system来执行Java代码,包括:加载.class字节码文件、管理内 存、执行垃圾收集。 Java程序并不是在本机操作系统上直接运行,而是通过Java虚拟机向本机操作系统进行解释来运行。这 就是说,任何安装有Java虚拟机的计算机系统都可以运行Java程序,而不论最初开发应用程序的是何种 计算机系统 java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系 统的种类 JDK 包含JVM和其他工具,以及所有的API和相关文件
垃圾收集机制(Garbage Collection)
Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配 情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器 不再使用内存空间回收——垃圾回收 在C/C++等语言中,由程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任,它 提供了一种系统级线程跟踪存储空间的分配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空 间。 垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
代码安全性检测(Code Security)
在运行时,执行机器只是将.class类文件通过交互后使用,一般情况下是看不到它的源代码.Java,如果 想要看到.Java源程序,就要通过专用反编译工具,才能够看到。这就体现了Java在运行环境中相对其它 语言来说,加强了代码的安全性
JDK和JRE
jdk:java开发工具箱,提供了java程序的开发工具和运行环境.
jre:Java运行时环境提供了java的运行环境支持
首先安装所使用的操作系统下载对应的JDK,
Hello Java
1、使用任意的文本编辑工具编写一个后缀为.java的文本文件
touch Hello.java
Java是面向对象的编程语言,要求编写程序的开始就是定义类的开始
public class Hello{其中public class是系统定义的关键字,Hello是用户自定义的类名称,
要求必须和文件名称一致,包括大小写,{}中用于用户自定义程序
public static void main(String[] args){//这个方法的名称不允许作任何调整,包括大小
写,这是程序的执行起始点
System.out.println("Hello Java!");在Java中语句以;收尾,System.out.println
用于实现在屏幕上输出字串内容,所谓的字串就是引号中所包含的字符序列
}
}
2、编译程序为字节码文件【名称和源代码文件一致,只是后缀为.class的二进制文件】,JDK中自带了 编译器javac
javac Hello.java
如果有语法错误则编译失败,并进行告错
3、使用解释器java解释执行字节码文件 java Hello[这里不是文件名称,是类名称,所以没有后缀class]
垃圾收集机制 gc
- 不再使用内存空间回收——垃圾回收
- 在C/C++等语言中,由程序员负责回收无用内存
- Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的 分配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空间
- 垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
###代码安全性检查###
Java中标识符
- 字母(Unicode编码字符集)、数字、下划线和$符构成,不允许数字打头
- 不允许使用保留字(goto const)和关键字(public class static…)
- 长度没有限制
编码规范
1.类名首字母大写,大写字母分词 建议名词
2.方法名称首字母小写,大写字母分词
3.变量名称首字母小写,大写字母分词
4.包名称全小写,使用域名反转的方式定义
Java是一种先编译后解释执行型语言
javac Hello.java[源代码文件名称]编译,将源代码转换为虚拟机可以识别的中间性质语言,一般生成一个 同名的后缀为class的文件【二进制文件,字节码文件】,这里就是跨平台的原理
java Hello[类名称,就是源代码中class关键字后面所跟的名称]一般是解释执行字节码文件
Java语法基础
Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔 开每个词
System.
out.
println
( “Counted " + count + " chars.” );
同时也允许将多行代码写在一行上,注意使用分号隔开。所有的语句末尾以分号;收尾
Java代码中的注释
从软件工程的角度上说,一个源程序中20%-30%的编码量为注释是合理的;如果不写注释是不建议 Java语法中提供了3种注释:注释是供程序员阅读的,用于对代码进行说明,从而避免需要了解方法的 功能时,还需要进行代码阅读的限制,偶尔用于开发中,阻止一段代码的执行。注释在代码编译时会自 动被编译器所忽略
// 单行注释
/* 多行注释 */
/** 文档注释 */ 可以通过javadoc命令生成html文档
源文件布局 .java 一个Java源文件可包含三个“顶级”要素
- 一个包声明(可选) package com.yan; 命名空间
- 任意数量的导入语句 import java.io.*; 引入其它定义的程序
- 类和接口声明 [public] class A{}
三要素必须以上述顺序出现。即,任何导入语句出现在所有类定义之前;如果使用包声明,则包声明必 须出现在类和导入语句之前。每个Java的编译单元可包含多个类或接口,但是每个编译单元最多只能有 一个类或者接口是公共的
- 一个公共的类存放在同名称的文件中,一个文件可以存放多个类定义,但是只能有一个和文件名称 相同的public class
- Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。同时也允许将多行 代码写在一行上,注意使用分号隔开;所有的语句末尾以分号;收尾
- 一般建议使用通用习惯的格式存放文件。先随便格式进行定义,然后使用【ctrl+shift+F】快捷键对 代码进行格式化处理
常见的编程错误:
- 目前的要求:将所有的程序都必须写在方法内部,不能写在方法外
- 使用临时变量,Java要求必须是先定义后使用,必须是先赋初值后使用
Java标识符
- 标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线 或美元符号。
- 标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
- 标识符不允许使用保留字。关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造 construct名, java语言中的保留字均用小写字母表示 。
变量
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分
例如int k=100; 其中int是数据类型,k是变量名 m
变量名称:在一个方法内部不允许出现多个同名称的变量
变量类型:
-
Java属于强类型编程语言,变量类型一旦声明,则不能进行修改
-
数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑
int k; 声明一个变量,类型为整形,变量名称为k int k=100; 声明变量的同时进行初始化 k=12.345; 语法错误,因为已经声明了类型为整形,但是12.345不是整数 d=123; 语法错误,因为Java语法要求对于变量必须是先定义后使用
作用域是指变量的有效范围,一般是在所在花括号范围内
public static void main(String[] args){ { System.out.println(k);//错误1:要求临时变量必须是先定义后使用,必须是先赋初 值后使用 int k=100; System.out.println(k); } System.out.println(k);//错误2:因为k定义在{}内部,所以k只在上面的{}分为内有效, 离开了{}则失效,{}外引用k则报错 }
public static void main(String[] args){ int k=99; { System.out.println(k); int k=100; //错误:因为Java是强类型编程语言,所以在{}外已经声明了k的类型,在k 的有效范围内不允许重新声明 System.out.println(k); } System.out.println(k); }