Java语言
Java是一门重要的编程,以下分享出我对Java基础概念的基本认识,希望和读者们一起学习进步。
1.一种面向对象的语言
1 public class Hello{
2 public static void main(String[] args){
3 System.out.println("Hello world!");
4 }
5}
2.一种平台无关的语言,必须程序运行的解释环境
javac Hello.java-----Hello.class
3.一种健壮的语言,吸收了C/C++语言的优点,但是去掉了影响程序健壮性的部分,例如指针、内存的申请与释放等
不能讨论指针
Java主要技术分支
JavaSE:Java标准版,适合于开发桌面系统和低端商务应用系统
JavaEE:Java企业版,为企业提供电子商务构架及Web服务的解决方案
JavaME:Java微型版,是移动商务最佳的应用典范
Java应用场景
Java编程语言是一种广泛应用于互联网应用的高级计算机语言,主要应用于网络编程和互联网电子商务应用,特别适合于Internet应用程序开发
JVM、JRE和JDK的区别
1.JVM -java virtual machine在真实机器中用软件模拟实现的一种想象机器 ,java虚拟机负责解释执行字节码文件,是可以运行Java字节码文件的虚拟计算机。JVM可以保证java的跨平台的特性。java语言是跨平台,jvm不是跨平台的
2.JRE - java 运行环境。JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成
Java的开发平台JDK是开发人员用来构建Java应用程序的软件包,它包括:Java虚拟机JVM、Java编译器 javac、Java归档jar实用程序、Java文档javadoc实用程序等
所谓的Java运行环境JRE是JDK的子集,包括JVM、运行时类库和执行Java字节码所需要的Java应用程序启动器,但省略了Java编译器等开发工具。如果只需要运行Java而不需要开发Java程序,则不需要完全安装JDK,只选择安装JRE即可
Java的三种核心机制
Java虚拟机(Java Virtual Machine)
虚拟机就是在真实机器中用软件模拟实现的一种虚拟机器。Java虚拟机代码被存储在 .class文件中;每个文件都包含最多一个public类。
Java虚拟机可以理解成一个以字节码为机器指令的CPU。对于不同的运行平台,有不同的虚拟机。 Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
垃圾收集机制Garbage Collection
Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器
不再使用内存空间回收——垃圾回收
在C/C++等语言中,由程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空间。
垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
代码安全性检测Code Security
在运行时,执行机器只是将.class类文件通过交互后使用,一般情况下是看不到它的源代码.Java,如果想要看到.Java源程序,就要通过专用反编译工具,才能够到。这就体现了Java在运行环境中相对其它语言来说,加强了代码的安全性
Java虚拟机中类加载的过程
系统会通过加载、连接、初始化三步来实现这个类进行初始化。
链接包括验证、准备以及解析三个阶段。(1)验证阶段。主要的目的是确保被加载的类满足Java虚拟机规范,不会造成安全错误。(2)准备阶段。负责为类的静态成员分配内存,并设置默认初始值。(3)解析阶段。将类的二进制数据中的符号引用替换为直接引用。
javadoc用法
Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档
javadoc -d 目标文件夹abc Hello.java文件名
@author指定程序的作者
@version指定源文件的版本
@param方法的参数说明信息
@return方法的返回值说明信息
@see用于指定参考的内容
@exception抛出异常的类型
@throws抛出的异常,和@exception同义
1 /**
2 文档注释,使用javadoc命令可以生成html格式的说明文件
3 *@author xx
4 *@version 1.0.0
5 */
6 public class Hello{//定义一个java类程序
7 /**
8 * 主方法
9 * @param args数组用于接受命令行参数
10 * @return 没有返回值
11 */
12 /*
13 多行注释
14 可以添加多行的说明信息
15 */
16 public static void main(String[]args{System.out.println("Hello Java!");}
Java中注释
一般要求编写程序必须有合理的注释说明,注释一般建议控制在20%-30%代码量上。但是具体实践中一般不会写这么多的注释,但是不写注释是不合理的
// 单行注释
/*
多行注释
*/
/**
文档注释,可以通过使用javadoc工具生成对应的说明文档*/
Java标识符
在Java编程语言中,标识符是赋予变量、类或方法的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。
标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线或美元符号。
标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
public class A {
public static void main(String[] args) {
int kk = 100;
System.out.println(Kk);//报错的原因是Java中严格区分大小写,所以kk和Kk是两
个不同的东西
}
}
标识符不允许使用保留字。关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造construct名, java语言中的保留字均用小写字母表示
编码规范
1.类名首字母大写,大写字母分词 建议名词
2.方法名称首字母小写,大写字母分词
3.变量名称首字母小写,大写字母分词
4.包名称全小写,使用域名反转的方式定义
变量
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。其中数据类型指明变量或表达式的状态和行为,数据类型决定了数的取值范围和运算符号
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分
Java属于强类型编程语言,变量类型一旦声明,则不能进行修改
public class B {
public static void main(String[] args) {
// int是数据类型,其中定义了存储空间大小4B,k是名称,用于指代具体的存储位
置【地址】
int k = 100;
k = 12.34;// 报错因为类型不匹配,12.34是double类型,不是int
int k = 123;// 报错是因为系统人为是针对k重新定义类型,类型一旦声明则不允
许修改
}
数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑
int k = 100;
System.out.println(k+1); //int中定义了运算符+和/的实现
System.out.println(k/33);
String ss="123";
System.out.println(ss+1);
System.out.println(ss-1);//报错的原因是String中定义了+计算,但是没有-计算
作用域是指变量生效的范围,从定义的位置开始,到所在的{ }结束为止
自动垃圾回收,一般来说java在一定程度上避免了内存泄漏问题
public class B {
public static void main(String[] args) {
{
System.out.println(k);//报错的原因是系统要求变量必须是先定义
后使用,先赋初值后使用
int k=100;//临时变量,局部变量,有效范围是所在的{}范围内,从定
义的位置开始到所在的{}结束为止,自动垃圾回收
System.out.println(k);
}
System.out.println(k);//报错原因是k已经超出了有效范围,这里不存在
变量k
}
JAVA是强类型语言
每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的。Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的。任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来
在Java语言数据类型可以分为两大类:基本类型(原生类型primitive type)和引用类型(复合类referance type)
4类 整数: byte 1B short 2B int 4B long 8B 默认为int 特殊后缀L/l
浮点数: float 4B double 8B 默认double 特殊后缀 f/F D/d
字符: 单引号 2B unicode[java默认0-65535]
布尔: true、false
引用类型: 复杂类型
class/interface 数组 null
注意:null属于引用类型,所以int k=null;语法错误
基本类型
基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的。
简单数据类型代表单值,而不是复杂的对象
Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多
的影响。
Java编程语言有八个原始数据类型,可分为4种整型、浮点数、字符型数据和布尔型数据,不会随着计算机类型而变化的
以上就是Java语言的基本概念,希望能够帮助到共同学习Java的读者。