java基础篇-01-java语言的概述\变量\数据类型

背景

从事java开发已经三年由余了,最近想好好的总结下java开发。所以打算写一系列相关文章,能够系统的涵盖java后端从入门到高阶的开发,所以开始写java的博客。
这些博客不是简单的进行流程的介绍,而是我进行实践和思考的结果,希望对自学的同学能有所帮组。

java语言的概述

1.语言发展概
java语言的发展,经历了三代的语言,才发展出了纯面向对象的java语言。第一代语言是打孔机,纯粹的机器语言。第二代语言是汇编语言,第三代语言是高级语言,有面向过程思想的C、Pascal、Fortan等。有面向对象的C++,有跨平台又面向对象的java等。

95年 sun公司推出JAVA,前身oak
创始人: 詹姆斯 高斯林

3.java语言版本

  • 98年 内部版本1.2 java技术平台命名为:j2se、j2me、j2ee
  • 04年 内部版本1.5 外部版本5.0 改动非常大
  • 06年 内部版本1.6 重命名java技术平台,javaSE、javaME、javaEE
  • 09年 Oracle收购sun公司
  • 11年 内部版本1.7
  • 14年 内部版本1.8 改动非常大
  • 17年 内部版本1.9 从该版本开始,每6个月版本升级计划
  • 18年3月 内部版本1.10

注意公司中使用的都是LTS版本

2.java技术体系平台
java se(Java Standard Edition) Java标准版
主要应用于PC上的GUI程序开发。

java ee(Java Enterprise Edition) Java企业级版本
主要用于web应用程序开发,为企业提供一套解决方案。

java me(Java Micro Edition)
主要用于嵌入式平台的开发。现在几乎没用了。

3.java在各个领域中的应用

  • 企业级开发
  • android应用
  • 机器学习领域

java的运行机制和执行过程

两个机制,一是JVM虚拟机机制,二是GC,垃圾自动回收机制.

java语言环境的搭建

下载安装JDK

到Oracle官网下载 , 下载对应的版本,我这使用的事JDK8

配置path环境变量

windows下安装后的JDK会生成两个目录,一个jdk,一个jre,因为jdk中带有jre

什么是环境变量如何实操配置?

环境变量是运行命令的时候, 操作系统会默认去搜索的路径。

windows下的环境变量配置

到Oracle官网下载对应的JDK版本.

  • 添加JAVA_HOME环境变量为JDK安装的根目录。
  • 将%JAVA_HOME%/bin添加到PATH环境变量下。
Unix下的环境变量配置

mac下安装JDK很简单。
方法一: brew cast install java8即可安装jdk8
方法二: 到Oracle官网下载对应的JDK版本, 按提示安装即可
mac下安装的会自动添加到对应的path环境变量中

JDK、JRE、JVM是什么有什么关系?

JDK(Java Development Kit)指java开发工具包
JRE(Java Runtime Environment)指java运行环境
JVM指Java虚拟机, 其运行于对于操作系统层之上。(具有指令集并使用不同的存储区域。负责执行指
令,管理数据、内存、寄存器。)
JDK = JRE + 开发工具集合
JRE = JVM + Java SE标准类库

Java中的注释

java中的注释和C、C++都一样, 有单行和多行注释。
其中java还有文档注释,所谓的文档注释就是该注释可以生成对应的文档,方便阅读和维护。

文档注释

语法:

/**
* @author: sweetcs
*
*/

文档注释对应的生成文档的命令javadoc,该命令是用来生成java api文档的命令,而文档注释是为了在生成API文档的时候,能够生成对应接口的描述。
javadoc -d 文件夹名称 xxx.java

类的结构

类的签名,修饰符是可选的
public class XXXX
类体

{

}

方法的签名:
public int calcHeight(int a, int b)
方法体

{

}

变量

标识符

标识符就是给变量、类、方法取名字就叫做标识符。
java中的标识符必须是字母(以a-z大小),数字、下划线和$符号组成.

命名标识符需要注意的细节

  • 标识符不能以数字开头取名
  • 标识符不能以空白符开头
  • 标识符不能以保留字、关键字命名

按数据类型分类

java基础篇-01-java语言的概述\变量\数据类型_第1张图片
image.png

基本数据类型

整型
  • byte 一个字节 -128~127
  • short 两个字节 -2^15 ~ 2 ^15 -1
  • int 四个字节 -2^31 ~ 2^31 -1
  • long 八个字节 -2^63 ~ 2^63 - 1

java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’

浮点型

java中的浮点型有两种,double和float,必须包含小数点。

  • 浮点型常量默认类型是double
  • 要创建float类型的浮点类型,需要在小数后加f或者F
  • float四字节、double 8字节
  • 浮点型常量可以使用d或者D表示,比如9D, 9d
字符类型

字符类型是可以运算, 因为其本质就是数字。java中的字符用Unicode编码,这些字符包含在ASCII码范围内没有变。

字符常量的三种表示方式

  • 使用单引号括起来的单个字符
  • 转移字符
  • 使用Unicode值来表示字符型常量
Unicode编码与UTF-8的关系
  • Unicode是一种编码,它只规定了符号的二进制代码,没有规定该二进制代码如何存储。
  • 无法区别 Unicode 和 ASCII:计算机无法区分三个字节表示一个符号还是分别表示三个符号。另外,我们知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费。
  • UTF-8是对Unicode编码的一种实现方式
  • UTF-8是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8的编码规则:

  • 对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。
  • 对于多字节的UTF-8编码,如果编码包含 n 个字节,那么第一个字节的前 n 位为1,第一个字节的第 n+1 位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。
Unicode和UTF-8的区别
  • Unicode是一种编码规范, 其每个字符占用2个字节。而UTF-8是这种规范的一种实现, 是一种变长编码方案, 英文字母还是占用一个字节,但是汉字占用3个字节
布尔类型
  • boolean类型数据只允许取值true和false,无null。不可以0或非 0 的整数替代false和true,这点和C语言不同。
  • Java虚拟机中没有任何供boolean值专用的字节码指令,java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示《java虚拟机规范 8版》

引用数据类型

  • class定义的类
  • interface定义的接口
  • 数组

数据类型转换

基本数据类型转换

自动数据类型转换

基本规则: (小--->大)容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为

java基础篇-01-java语言的概述\变量\数据类型_第2张图片
image.png
  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。 -
  • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
  • 当把任何基本类型的值和字符串(String)进行连接运算时(+),基本类型的值将自动转化为字符串类型。

整型常量
所谓的整型常量,是属于整数,但没有说明使用什么整数结构来进行存储(byte\short\int).
所以byte b = 5并不是表示5是整型常量,所以并不是int类型存储到byte类型,这里需要注意理解。

强制类型转换

基本规则: 大转小。大转小的时候, 编译器编译期间默认是会报错的,比如报类型不兼容等。这个时候就需要使用强制类型转换。

语法:数据类型 变量名 = (目标数据类型)值;

特点:
①表达式有个自动提升原则。表达式的结果的最终类型为 操作数中的最大类型
②强转符号只针对于最近的有效
int a = (int)12.5+7.5;
③byte、short的底层存储实际是以int形式。每次byte、short运算都当做int类型
④char类型只能存储int的常量值,但不能直接存储int的变量值

String类型和基本类型之前的转换

基本类型 转 String

语法:直接拼接空字符串.
String s = i + ""

String 转 基本类型

语法:通过调用基本数据类型对应的包装类里的parseXXX方法。
例如:

String s = "123455.5";
double d= Double.pareseDouble(s);

String转char

String s = "a";
char c = s.charAt(0);

你可能感兴趣的:(java基础篇-01-java语言的概述\变量\数据类型)