Java基础

为什么学习 java

Java 是 Sun Microsystems 于 1995 年推出的高级编程语言
Java 领域的 JavaSE、JavaEE 技术已发展成为同 C#和.NET 平分天下的应用软件开发平台和技术

java 语言的特点

  • 跨平台性;一处编写,处处运行.
  • 面向对象(三大特征);封装.继承.多态.
  • 健壮性;强类型机制,异常处理机制,自动垃圾回收机制
  • 分布式;
  • 多线程;
  • 动态性;

JVM(Java Virtual Machine)介绍

JVM 称为 java 虚拟机;
JVM 可以理解为 Java 编译器和操作系统之间的虚拟处理器;

  • 编译器编译的字节码只要 JVM 认识即可
  • JVM 再将字节码解释成操作系统认识的机器码

只要需要运行 Java 程序的设备,都需要安装 JVM

JDK 与 JRE

  • JDK 是 Java 开发工具包(Java Development Kit)的简称,是一个软件;
    如果要用 Java 语言编写程序,就必须在计算机上安装 JDK;
  • JRE 是 Java 运行环境(Java Runtime Environment)的简称
    如果要在机器上运行 Java 程序,就必须要有 JRE;

JDK 的一些常用工具

  • javac: 编译器,将源程序转为字节码;
  • java: 运行编译后的 java 程序(.class 后缀的);
  • jar: 打包工具,将相关的类文件打包成一个文件;
  • javadoc: 文档生成器,从源码注释中提取文档;

Java 项目结构

src 目录:存放包和源文件
JRE 系统库目录:存放程序运行必须的系统库文件
bin 目录:存放可执行的字节码文件

注释

文本注释:

1
2
3
4
/**
* version ycj
* data 2017-03-05
* /

标识符命名规则

  • 某一个区域中是唯一的,在不同的区域中可以使用同一名字
  • 必须由字母、数字、下划线和$符号组成
  • 不能以数字开头
  • 不能使非法的字符,如:#,%……“&等
  • 不能使系统关键字
  • 不能使空格来分隔
  • 长度无限制
  • 严格区分大小写
  • 不同的标识符有一定的命名规矩,后续学习

成员变量和局部变量的区别

成员变量是作用于整个类,局部变量作用于某个方法,局部变量没有默认值,必须初始化,成员变量有默认值.

数据类型

数据类型分为基本数据类型和引用数据类型;

  1. 数据类型(8 个基本数据类型):byte, short, int, long, float, double, boolean, char
  2. 引用数据类型:String, 数组, 接口, 类, 枚举, 包装类型
String、StringBufferStringBuilder 的区别

String类是不可变的,对象一旦被创建,就不能被修改;可以使用=直接赋值,此时使用常量池;也可以使用 new 创建,不使用常量池;
StringBuffer是可变的,对象创建后,可以修改;必须使用 new 关键字;
StringBuilder是不同步的,在单线程情况下使用比 StringBuffer 高效;必须使用 new 关键字;

堆,栈,常量池,方法区

基本数据类型保存在栈中,引用数据类型保存在堆中;
:存放所有 new 出来的对象
:存放基本类型的变量数据和对象的应用
方法区:包含所有的 class 和 static 变量
常量区:存放基本类型和字符串常量

运算符

从功能角度分,Java 中的运算符可以分为算术、关系、位、逻辑运算符四类
算术运算符:用来对操作数进行数学运算.
关系运算符:又叫比较运算符,用来运算操作两个数的大小关系.
位运算符:针对操作数的二进制位进行运算
逻辑运算符:针对布尔值或返回值为布尔值的表达式进行运算