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大小),数字、下划线和$符号组成.

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

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

按数据类型分类

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定义的接口
  • 数组

数据类型转换

基本数据类型转换

自动数据类型转换

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

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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358