java基础

来源:互联网 发布:剑侠情缘手游mac版 编辑:程序博客网 时间:2024/05/16 08:41

Java语言发展史

  詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

SUN(Stanford University Network,斯坦福大学网络公司),Java在1990年末由sun公司开发,完全面向对象

Java语言版本

版本号名字中文名时间JDK 1.1.4Sparkler宝石1997-09-12JDK 1.1.5Pumpkin南瓜1997-12-13JDK 1.1.6Abigail阿比盖尔–女子名1998-04-24JDK 1.1.7Brutus布鲁图–古罗马政治家和将军1998-09-28JDK 1.1.8Chelsea切尔西–城市名1999-04-08J2SE 1.2Playground运动场1998-12-04J2SE 1.2.1none无1999-03-30J2SE 1.2.2Cricket蟋蟀1999-07-08J2SE 1.3Kestrel美洲红隼(sǔn)2000-05-08J2SE 1.3.1Ladybird瓢虫2001-05-17J2SE 1.4.0Merlin灰背隼2002-02-13J2SE 1.4.1grasshopper蚱蜢2002-09-16J2SE 1.4.2Mantis螳螂2003-06-26JAVASE 5.0 (1.5.0)Tiger老虎 JAVASE 5.1 (1.5.1)Dragonfly蜻蜓 JAVASE 6.0 (1.6.0)Mustang野马 JAVASE 7.0 (1.7.0)Dolphin海豚

Java语言特点

  • 简单性
  • 解释性
  • 面向对象
  • 高性能
  • 分布式处理
  • 多线程
  • 健壮性
  • 动态
  • 结构中立
  • 安全性
  • 开源
  • 跨平台

Java语言跨平台原理

什么是跨平台性

1.只需要在运行Java应用程序的操作系统上先安装一个java虚拟机(JVM Java Virtual Machine)即可.

由jvm来负责Java程序在该系统中的运行.

2.Java语言跨平台性:一处编译,到处运行

JRE和JDK

什么是JRE :全名(Java Runtime Enviroment) Java运行时环境.包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

什么是JDK :全名(java Development kit) java开发工具.JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了.

JDK:JRE+JAVA的开发工具。

为什么JDK中包含一个JRE ?

开发完的程序,需要运行一下看看效果。

JDK、JRE和JVM三者之间关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

JDK 包含JRE,JRE包含JVM。

JVM:将字节码文件转成具体系统平台的机器指令。 
JRE:JVM+Java语言的核心类库。 
JDK:JRE+Java的开发工具。

我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

java运行步骤

 这里写图片描述

java程序开发步骤:

1:将java代码编写到扩展名为.java的文件中

2:通过java命令对该java文件进行编译

3:通过java命令对生成的class文件进行运行


java文件的命名规范:

1.源文件的后缀必须是.java.不能使用其他文件后缀名.

2:所有的java文件名首字母必须要大写而且是名词,使用驼峰命名,每一个单词首字母要大写

3.由数字.字母,下划线组成,但是要以字母或者下划线开头

  • 1:包 
    • 最好是域名倒过来,要求所有的字母小写
  • 2:类或者接口 
    • 如果是一个单词首字母大写
    • 如果是多个单词每个单词首字母大写(驼峰标识)
  • 3:方法或者变量 
    • 如果是一个单词全部小写
    • 如果是多个单词,从第二个单词首字母大写
  • 3 :常量 
    • 如果是一个单词,所有字母大写
    • 如果是多个单词,所有的单词大写,用下划线区分每个单词


java源文件里有public类,那么源文件的主文件名必须与public类名一样:

例: public class Mehtod {

}

public(修饰符) class(关键字) Method(类名)


main方法的用途:

main方法是运行java代码的执行入口,所以要运行一个类中的代码,需要先编写main方法.

class HelloWorld {    public static void main(String[] args) {        System.out.println("HelloWorld");    }}

关键字的概述和使用

  • 1:什么是关键字 
    • 被Java语言赋予特定含义的单词
  • 2:关键字的特点 
    • 组成关键字的字母全部小写
  • 3:常见关键字 
    • public static void class等
  • 4:关键字的注意事项 
    • goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

标识符的概述和组成规则

  • 1:什么是标识符 
    • 就是给类,接口,方法,变量等起名字时使用的字符序列
  • 2:标识符的组成规则 
    • 英文大小写字母
    • 数字字符
    • $和_
  • 3:标识符注意事项 
    • 1,不能使用关键字
    • 2,不能数字开头


注释 
  • 行注释: //注释文本
  • 快注释: /*注释文本 */
  • 文档注释 /** 注释文档 */

java数据类型:
java语言支持的数据类型分为两类:
1.基本类型:整数.浮点数.布尔类型.字符类型
2.引用类型:除基本以外的类型:
八种基本数据类型:
类型名称类型定义类型取值boolean布尔值,作二元判断true, falsebyte8位有符号整数最小值-128,最大值127short16位有符号整数最小值-32768,最大值32767int32位有符号整数最小值-2147483648(-231),最大值2147483647(231-1)long64位有符号整数-263~(263-1)float32位浮点数1.4E-45~3.4028235E38double64位浮点数4.9E-324~1.7976931348623157E308char16位Unicode字符不适用
数值型–整数型byte,int,long,short数值型–整数型:byte,int,long,short数值型–浮点型:float,double布尔型:Boolean字符行:char类型占用大小byte1字节short2字节int4字节long8字节float4字节double8字节char2字节

引用类型

而引用类型则是类、接口和数组变量。引用类型变量的值和基本类型变量不同,变量值是指向内存空间的地址(引用)。这个地址在C语言中称为指针或者内存地址。java不支持显式使用内存地址,所以要通过变量(引用类型变量)名对某个内存地址访问。

在java中使用基本类型变量声明时,系统直接给该变量分配栈内存空间并给其初始值,所以以下程序可以直接操作。int a;a = 10;a在声明的时候内存中会给其赋默认值0;所以a可以直接使用。User user;user.name = "OH";由于user不是基本数据类型,所以该对象java虚拟机没有办法进行默认初始化,必须要手动new一个对象进行初始化(也就是在java堆中开辟一块儿user的数据空间)。由于上述代码中user没有进行初始化,所以在赋值的时候会报错。错误描述:user变量没有初始化。

引用类型变量的赋值

java中引用类型变量的赋值是引用赋值,即将引用对象的内存地址赋给即将赋值的变量。如: 
User li = new User; 
user zhou = li; //将li的内存地址写入zhou的栈内存中。

整数:java有三种表现形式
十进制:0-9,满十进一
八进制:0-7.满八进一,用0开头表示
十六进制:0-15,A-F,满十六进一,用0x开头表示
二进制:0-1.由0和1组成,已0b开头

数据转换:
在java中,不同的基本类型的值经常需要进行转换,有两种类型转换方式:自动类型转换和强制类型转换
自动转换:把一个数值小的赋给数值大的.
强制转换: 小类型 变量 = (小类型)值(值是大类型)