Java基础

本文详细介绍了Java的基础知识,包括Java的三大版本(JavaSE、JavaEE、JavaME)及其应用场景。深入讲解了Java的三大核心机制:Java虚拟机(JVM)、垃圾收集机制和代码安全性检测。此外,还阐述了JDK和JRE的区别,以及如何编写和执行简单的Java程序。文章最后讨论了Java的变量、数据类型、作用域和编程错误,强调了Java的强类型特性以及代码规范和错误处理。
摘要由CSDN通过智能技术生成

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);
    }
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值