Java编程入门

认识Java
  1. Java的起源是SUM公司开发的,后来被oracle收购
  2. Java的开发开发有三种
    • JAVA SE 桌面应用开发
    • JAVA ME 嵌入是开发
    • JAVA EE 企业平台开发,即互联网平台开发

Java语言特点

  1. Java是半开源的项目,可以接触底层代码
  2. Java是一种编程语言,面向对象的编程思想并且一直在拓展扩充
  3. 提供有方便的内存回收机制
  4. 避免了复杂的指针问题,使用更加简单的引用来代替指针
  5. Java是支持多线程开发的语言,使得在单位时间内的提升了处理能力
  6. Java提供了高效的网络处理能力,基于NIO实现了更加高效的网络传输能力
  7. Java具有良好的可移植性
  8. 足够简单

Java的可移植性

在于同一个程序可以在不同的操作系统中执行部署,减少开发难度。依赖于Java虚拟机JVM,不同操作系统拥有不同版本的JVM,实现了移植性。

Java程序运行机制
  • 编译型,解释型。Java是两种高级编程语言的结合,先编译成.class文件,再解释成计算机识别的机器指令
  • 编译命令:Javac.exe
  • 解释命令:Java.exe
  • Java程序的组成:Java源文件,字节码文件,机器码指令

JVM

  • 一台模拟的计算机,可以读取并处理经编译过的与平台无关的字节码class文件
  • java编译器针对JVM产生class文件,因此独立于平台
  • Java解释器负责将JVM的代码在特定的平台上运行

JDK的介绍

是Java的开发工具包,主要版本迭代,其中JRE是运行环境,只提供解释功能不提供程序的开发功能

  • 1995.05.23,JDK1.0发布, 1996年提供对外
  • 1998.12.04 JDK1.2,更名为Java2
  • 2005.05.23 十周年大会,JDK1.5 ,带来了新特性,决定了未来10的核心技术
  • 2014 JDK1.8,支持了Lambda,可以函数式编程
  • 2017 JDK1.9,提高了1.8稳定性
  • 2018 JDK1.10,属于1.9的稳定版

JDK的安装与配置

Java编程起步

创建HelloWorld.java文件,编写源文件,编写输出HelloWord的程序。Java程序是需要经过两次处理之后才能正常执行的

  • 对源代码进行编译:Javac xxx/HelloWord.java,会出现一个HelloWord.class的字节码文件,利用JVM进行编译,编译出一套与平台无关的字节码文件(*.class)
  • 在JVM上进行程序的解释执行Java xxx/HelloWord。解释的就是字节码文件,字节码文件的后缀是不需要编写的
  • 类的定义有两种形式,public class 类名, class 类名。第一种文件名必须与类名一致,第二种可以不一致,生成的*.class文件名与类名一致。一般情况是一个class并且以public修饰,类名是驼峰式
  • main方法,程序运行入口主方法

ClASSPATH环境属性

  • PATH: 是操作系统提供的路径配置,定义所有可执行程序的路径
  • CLASSPATH: 是JRE提供的,用于定义Java程序解释时类加载路径,默认是源文件的目录

注释

  • 单行注释 //
  • 多行注释 /* …. */
  • 文档注释 /** …. */

标识符和关键字

  • Java语言中有不同的结构:类,方法,变量结构等,对于结构的说明实际上就是标识符,是有命名规则的。
  • 关键字,是系统对于一些结构的的描述处理,有着特殊含义,public static final 等等

Java数据类型简介

  • 数据分类:基本数据类型(数字单元)分三大类,数值型,浮点型,字符型,引用数据类型(内存关系的使用)分数组,类,接口
    类型 包括 默认值
    基本数据类型
    整型 byte,short,int,long 0
    浮点型 float,double 0.0
    布尔型 boolea false
    字符型 char ‘\u0000’
    引用类型 数组,类,接口 null
  • 使用原则: 如果是描述数字首选int,double;如果要进行数据传输或者文字编码选择byte(二进制处理);处理中文char;描述内存或者文件大小,表的主键列long
  • 内存溢出:如果数值的操作超出了数值类型的范围就会陷入循环的现象,通过使用范围更大的数值类型解决
  • 浮点型数据,都是有小数点的。float 变量相乘会出现多出4位小数的历史bug
  • 整形数据进行相除,会得到整数部分,10/2 = 2, 除非进行转型
  • 字符类型char和整形int可以相互转换, 可以获取char字符在系统中的编码。大写字母 A(65)Z(90),小写字母a(97)z(112),大小写之间相差32位,数字范围‘0’(48)~’9’(57)
  • java可以保存中文是因为Java使用的是Unicode 16进制的编码
  • 布尔类型,只有true和false
  • 字符串。在Java中范围大的数据类型与范围小的数据类型操作,所有小的数据类型会自动转型为数据范围大的数据类型

运算符简介

  • 数学运算符: 加减乘除
  • 关系运算符:大小的比较,基本数据类型之间支持自动转型,字符类型可以转成int
  • 逻辑运算符:三目(赋值)运算
  • 位运算:二进制数的计算处理,(&与) (|或者) (^异或) (~反码)
    • & | 在进行逻辑运算的时候所有的条件都会执行
    • && || 若干个条件判断的时候,前面的返回来false 或者 true,后面的条件判断就不再执行

IF分支结构

针对关系表达式进行判断处理的的分支操作,关键字为if,else,,在多条件else if判断时需写上else

switch分支语句

是一个开关语句,它主要根据内容进行判断,支持String.注意添加break关键字,否则会继续执行。注意添加default关键字

while循环

for循环

for(定义循环的初始化数值;循环判断;修改循环数值){
循环执行;
}

  • 在明确循环次数的情况下优先选择for循环
  • 在不知道循环次数,但知道循坏条件下选择while

循坏控制

break:退出整个循坏的结构
continue: 在当前的语句之后中的代码不在执行,而直接执行后续的判断处理

方法的定义

  • 方法的命名规则
  • 是一段可以被重复调用的代码块

方法的重载

当方法名相同的时候,参数类型或者个数不同的时候就称为方法的重载。

  • 同一个方法名称,可以根据我们调用时传递的参数类型及个数实现不同方法体的调用
  • 方法的重载建议其返回值相同

方法的递归调用

  • 方法递归调用的结束条件
  • 每次调用的过程中一定要修改传递的参数条件
  • 递归操作虽然可以简化的调用,但是在实际开发中很少出现。容易栈溢出