Day0810---Java基础

一、Java历史

  1. 诞生于SUN公司(Stanford University Network)。
  2. 大概于1996年发布正式的第一版。
  3. Java之父,詹姆斯·高斯林(James Gosling)。
  4. 2009年,SUN公司被Oracle(甲骨文)公司收购。
  5. 目前学习的版本是Java8,最新版本是Java12。
  6. Java分为三大方向:Java SE,Java EE,Java ME。
  7. Java9尝试把Java SE,Java EE,Java ME合起来,用模块的方式进行区分。

二、Java语言的主要特征

1. Java语言是强制面向对象的,提供类、接口和继承等。

支持类之间的单继承,接口之间的多继承,支持类与接口之间的实现机制,(关键字implements)。

2. Java语言是分布式的,支持Internet应用的开发。

在基础的Java应用编程接口中有一个网络应用编程接口(Java net),提供了用于网络应用编程的类库,包括URL,Socket等,RMI远程方法激活机制也是开发分布式应用的重要手段。

3. Java语言是健壮的,强类型机制,异常处理垃圾的自动收集等。

丢弃指针,防止指针指向错误的区域,使Java语言更安全。

4. Java语言是安全的,通常用在网络环境中。

Java提供了安全机制,以防恶意代码的攻击,如安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类,字节代码检查。

5. Java语言是体系结构中立的,跨平台的。

Java程序.java在Java平台上被编译为体系结构中立的字节码格式.class,可以在任何实现.class文件的平台上运行,任何语言可以编译成.class也可在平台上运行。

6. Java语言是解释型的。

Java程序在Java平台上被编译为字节码格式,可以在实现这个Java平台的任何系统的解释器中运行。

7. Java是性能略高的。

相比于其他解释型的高级脚本语言。

8. Java语言是原生支持多线程的。

线程是一种特殊的对象,必须由Thread类或其子类来创建。

三、Java语言的运行机制

1. 跨平台:

通过Java语言编写的应用程序在不同的系统平台上都可以运行(一次编写,处处运行)。

2. 原理:

Java程序不是直接运行在操作系统上的,而是运行在JVM(Java虚拟机)中的,而不同的操作系统平台可以安装不同的JVM。

3. JVM:

是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器,对于不同的平台有不同的虚拟机,屏蔽了底层运行平台的差别。

4. Java程序开发和运行的步骤:

① 编写Java代码保存的源代码文件.Java。
② 编译Java代码为字节码文件.class,JVM只认识字节码,编译工具Javac.exe。
③ 运行字节码文件,把字节码再转成CPU能执行的机器指令。

5. 使用编译工具命令:
 javac 源文件名.java
6. 使用运行工具命令:
java 字节码文件名/类名
7. 垃圾回收机制GC:

在C/C++等语言中,由程序员负责回收无用的内存,Java提供一种系统级线程跟踪存储空间的分配情况,并在JVM空闲时检查并释放那些可被释放的存储空间。
垃圾回收自动进行,有自己的一套算法,程序员无法精确控制和干预。

四、Java开发环境搭建

1. JDK(Java Developer’s Kit)Java开发工具包:

JDK=JRE+开发工具集,包括编译工具javac.exe,打包工具jar.exe(安装JDK就不用再单独安装JRE了)。

2. JRE(Java Runtime Environment)Java运行环境:

JRE=JVM+核心类库(提前写好的代码),包括Java虚拟机和Java程序所需的核心类库等(如果只是想要运行一个开发好的Java程序,计算机中只需要安装JRE即可)。

3. JVM(Java Virtual Machine)Java虚拟机:

运行Java程序需要用到。

4. 查看JDK是否安装成功命令:
  cd xxxxx/jdk/bin
  javac

五、环境变量的配置和JDK版本查看

1. 配置环境变量:

为了在任意目录下可使用javac命令,Windows等操作系统默认是在当前路径下和path环境变量指定的目录下查找命令等工具的,如果想在指定的目录下去查找这个命令,就要在path这个环境变量中把目录添加上去。
Win7:path=jdk安装的bin路径;之前的环境变量的值;
Win10:一行一个环境变量,表格形式)。

2. 用户环境变量和系统环境变量的区别:

用户环境变量只针对当前用户(操作系统登录的用户),系统环境变量是针对所有用户的。

3. JDK版本查看命令:
   java –version

六、Java程序注释,代码结构

1. 注释的三种形式:

单行注释:

 //xxx

多行注释:

 /*
 xxx
 xxx
 */

文档注释:

 /**
 xxx
 */
2. Java代码结构:
类{
	方法/函数{
		 语句;
	}
}
class HelloWorld//Java程序主方法,运行入口
     public static void main(String[] args)//输出语句,""中的内容表示需要原样输出的内容
          System.out.println("Hello Java");
     }
}

七、Java程序问题

1. 编码问题:

最早硬件机器语言(01)→引入汇编助记符等→ASCII码(最早只能表示128个字符,流传到其他国家扩展了128个,不具有通用性)→多字节编码(中国GB2312,后来GBK,台湾等地区Big5)→引入万国码Unicode编码表(只说了字符用什么数字表示,但数字范围跨服很大,在网络传输中出现问题)→解决传输问题UTF-8(规定了几个字节是一个字符,0开头一个字节是一个字符,11开头两个字节是一个字符,111开头三个字节是一个字符,1111开头四个字节是一个字符)。

2. 不同编码方式对同一组数据解析出来的字符是不同的解决方法:

修改当前源文件字节编码,转为与当前操作系统一致的编码。

3. 大小写问题:

源文件名不区分大小写,但还是要注意;
字节码文件名(类名)严格区分大小写;
代码中大小写严格区分。

4. 格式缩进问题:

{}问题,{在类名后面,}另起一行(Java)或者{}均另起一行©;
缩进问题:缩进Tab,回缩shift+Tab。

5. 源文件名和类名问题:

源文件名和类名一致,javac 源文件名.java,java 源文件名;
源文件名与类名不一致,javac 源文件名.java,java 类名(前提是类里面含有主方法,没有主方法的类不能运行);
如果class是公共的(public class),则要求源文件名必须和public class后的类名一致,一个源文件只能有一个public类;
一个源文件可以编写多个类,编译后会产生多个字节码文件,字节码文件名就是类名;
平时开发中一个.java文件只写一个类,除非有内部类(一个类在另一个类里面),而且源文件名与类名一致,后期好维护。

6. 在cmd命令行,如何重新运行之前执行过的命令:

↑查找之前的命令;
↓查找之后的命令。

八、Java标识符

1. 标识符:

在Java中对类、变量、方法等要素进行命名的字符序列称为辨识度,程序员自己命名。

2. 标识符命名规则:必须遵守,不然编译报错。

① Java标识符必须用26个英文字母的大小写、数字0-9、美元符号$、下划线_;
② 不能使用关键字(包含保留字)和特殊值,如class、public、static等50个关键字+3个特殊值;
③ 不能使用空格;
④ 不能以数字开头;严格区分大小写。

3. 标识符命名规范:建议遵守。

① 见名之意;类名、接口名等,要求每一个单词的首字母大写,HelloWorld;
② 变量名、方法名,从第二个单词开始首字母大写,其余首字母小写,helloWorld,main,println;
③ 包名,所有单词都小写,单词之间用.分割,java.lang;
④ 常量名(自己定义的),所有单词都大写,每个单词之间用_分割,MAX_VALUE,PI。

九、Java变量

1. 变量(variable)的作用:

存储值(数据),变量在Java中本质上代表一块内存区域,变量中的数据存储在JVM中。

2. 变量的三要素:

① 数据类型;
② 变量名(在程序中通过变量名访问内存及其数据);
③ 值(变量中具体的值,可以改变)。

3. 变量使用原则:

① 先声明,后使用,包括类、方法等;
② 变量必须先初始化(第一次赋值),再访问它的值(打印、计算、比较等操作);
③ 变量的声明在同一作用域(从变量声明处开始,到其所属的{}结束;
④ 同一作用域中只能声明一次,但可以多次赋值。

4. 变量的声明:

格式:数据类型 变量名=变量值(第一次赋值);
赋值:变量名=变量值(第二次赋值)。

5. 变量显示:

" " 中的内容原样显示;
变量在显示的时候,显示的不是变量名,而是变量中存的值,所以不用加 " " ;
" xxx " +变量名,把 " " 中的内容和变量值拼接显示。

十、Java数据类型

1. 分类:

基本数据类型;
引用数据类型(String)。

2. 基本数据类型(8种):

① 整型
byte:字节类型,1个字节,范围-128~127,2∧7;
short:短整型,2个字节,范围-32768~32767,2∧15;
int:整型,4个字节,范围-2147483648~2147483647,2∧31;
long:常整型,8个字节,范围-9223372036854774808~9223372036854774807,2∧63。

long 变量名=13059006613L/l
//建议使用大写L

② 浮点型
double:8个字节,大概精度范围是用科学计数法表示小数点后15~16位,
1.797693e+308~4.9000000e–324,10∧308/-324;
float:单精度浮点型,4个字节,大概精度范围是用科学计数法表示小数点后6~7位,
3.402823e+38~1.401298e-45,10∧38/-45,同长整型long,变量值后要加F/f。
③ 布尔型
boolean:值只有true、false,用于条件判断。
④ 字符类型:
char:单字符类型,2个字节,可以表示汉字,在Java中是用Unicode编码表示,每一个字符都有唯一一个Unicode编码值,兼容ASCII码等。

3. 字符串、字符表示

" xxx " 字符串String的常量必须用" " ,’ x ’ 单字符char的常量必须用 ’ ’ 。

4. 1Bit(字节)=8Byte

B、KB、MB、GB以1024进位,硬件厂商存储单位用1000进位,带宽100Mb中b=bit。

5. 表示类型的字符常量:

① ’ 一个字符 ’ :如 ’ A ', ’ 女 ’ ;
② ’ 转义字符 ’ :

 '\n'       //换行
 '\t'       //制表位Tab键
 '\\'       //斜杠
 '\"'       //双引号
 '\''       //单引号
 '\b'       //删除键Backspace
 '\r'       //回车键Enter
 '\u'       //字符的Unicode编码值饿十六进制形式
 '\u5c1a'   //十六进制对应十进制23578。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值