本篇文章是《零基础学Java》专栏的第一篇文章,从本篇文章开始,将会连更本专栏,带领大家将Java基础知识彻底学懂,文章采用通俗易懂的文字、图示及代码实战,从零基础开始带大家走上高薪之路!

第1章 Java概述

1.1 Java语言发展史

  • Java语言发展史

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

SUN(Stanford University Network,斯坦福大学网络公司)

1.2 跨平台原理

  • 平台:指的是操作系统(Windows,Linux,Mac)

  • 跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行

  • 原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)

1.3 JVM、JRE、JDK

  • 什么是JVM

    JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台。

  • 什么是JRE

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

    JRE=JVM+类库

  • 什么是JDK

    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

    其中的开发工具:编译工具(javac.exe)、打包工具(jar.exe)等

    JDK=JRE+JAVA的开发工具

  • JDK,JRE,JVM的作用和关系

    JRE包含:核心类库和JVM

    JDK包含:JRE 和开发工具包

第二章 语法格式

2.1 注释

2.1.1 注释概览

  • 什么是注释

    用于解释说明程序的文字

  • Java中注释分类

    1. 单行注释,格式: //注释文字

    2. 多行注释,格式: /* 注释文字 */

    3. 文档注释,格式:/** 注释文字 */

  • 注释的作用

    1. 解释说明程序
    2. 帮助我们调试错误

2.1.2 代码实战

/*
* 注释:用于解释说明程序的文字
*
* 分类:
* 单行
* 多行
*
* 作用:解释说明程序,提高程序的阅读性。
*/ //这是我的HelloWorld案例,class用于定义类。
public class HelloWorld {
/*
* 这是main方法
* main方法是程序的入口方法
* 所有程序的执行都是从main方法开始的
*/
public static void main(String[] args) {
//这是输出语句。
System.out.println("公众号【编程攻略】,专注于计算机基础知识的讲解");
}
}

2.2 关键字

2.2.1 关键字概述

  • 被Java语言赋予特定含义的单词

2.2.2 关键字特点

  • 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。

2.2.3 代码实战

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

关键字举例:

2.3 常量

2.3.1 常量概述

  • 在程序执行的过程中,其值不可以发生改变的量

2.3.2 常量分类

  • 字符串常量:用双引号括起来的内容(“HelloWorld”)

  • 整数常量:所有整数(12,-23)

  • 小数常量:所有小数(12.34)

  • 字符常量:用单引号括起来的内容(‘a’,’A’,’0’)

  • 布尔常量:较为特有,只有true和false

  • 空常量:null

2.3.3 代码实战

public class ChangLiang {
public static void main(String[] args) {
//字符串常量
System.out.println("HelloWorld"); //整数常量
System.out.println(12);
System.out.println(-23); //小数常量
System.out.println(12.34); //字符常量
System.out.println('a');
System.out.println('0'); //布尔常量
System.out.println(true);
System.out.println(false);
}
}

2.4 变量

2.4.1 变量概述

  • 在程序执行的过程中,在某个范围内其值可以发生改变的量

  • 从本质上讲,变量其实是内存中的一小块区域

2.4.2 变量定义格式

  • 数据类型 变量名 = 初始化值;

格式是固定的,记住格式,以不变应万变。

2.4.3 变量图解

2.5 数据类型

2.5.1 计算机存储单元

变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

  • 1B(字节) = 8bit
  • 1KB = 1024B
  • 1MB = 1024KB
  • 1GB = 1024MB
  • 1TB = 1024GB

2.5.2 数据类型概述和分类

  • 为什么有数据类型

    Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

  • Java中数据类型的分类

    1. 基本数据类型

    2. 引用数据类型

2.5.3 基本数据类型(4类8种)

2.6 标识符

2.6.1 标识符概述

  • 作用

    给包,类,方法,变量等起名字

  • 组成规则

    由字符,下划线_,美元符$组成

    ::: block-1

    这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符,数字字符等。

    :::

    注意事项

    1. 不能以数字开头
    2. 不能是Java中的关键字
  • 命名原则:见名知意

    最好是域名倒过来,要求所有的字母小写

    1. 类或者接口

    如果是一个单词,首字母大写

    如果是多个单词,每个单词首字母大写(驼峰标识)

    1. 方法或者变量

    如果是一个单词,全部小写

    如果是多个单词,从第二个单词首字母大写

    1. 常量

    如果是一个单词,所有字母大写

    如果是多个单词,所有的单词大写,用下划线区分每个单词

2.6.2 代码实战

public class IdentifierDemo {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值;
int age = 20; //不能以数字开头 //正确写法
//int b2 = 30; //错误写法
//int 2b = 30; //不能是java中的关键字
//int class = 40;
}
}

2.7 定义变量

2.7.1 基本数据类型变量的定义和使用

  • 变量的定义格式:

    数据类型 变量名 = 初始化值;

  • 基本数据类型:

    byte,short,int,long,float,double,char,boolean

整数默认是int类型,定义long类型的数据时,要在数据后面加L。

浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。

2.7.2 代码实战

public class VariableDemo {
public static void main(String[] args) {
//byte类型的变量
byte b = 10;
System.out.println(10);
System.out.println(b); //short类型的变量
short s = 100;
System.out.println(s); //int类型的变量
int i = 1000;
System.out.println(i); //long类型的变量
//long l = 10000;
//System.out.println(l);
long l = 10000000000L;
System.out.println(l); //float类型的变量
float f = 12.34F;
System.out.println(f); //double类型的变量
double d = 12.34;
System.out.println(d); //char类型的变量
char ch = 'a';
System.out.println(ch); //boolean类型的变量
boolean bb = true;
System.out.println(bb);
}
} //定义boolean类型的变量
boolean bb = false;
System.out.println(bb);
}
}

2.7.3 变量定义的注意事项

  • 变量未赋值,不能直接使用

    引出变量的第二种使用格式

  • 变量只在它所属的范围内有效。

    变量在哪对大括号内,变量就属于哪对大括号

  • 一行上可以定义多个变量,但是不建议

2.7.4 代码实战

public class VariableDemo2 {
public static void main(String[] args) {
//定义一个变量
int a = 10;
System.out.println(a); int b;
b = 20;
System.out.println(b); {
//代码块
int c = 30;
System.out.println(c);
}
//System.out.println(c);
System.out.println(b); /*
int aa,bb;
aa = 10;
bb = 20;
System.out.println(aa);
System.out.println(bb);
*/
int aa = 10;
int bb = 20;
System.out.println(aa);
System.out.println(bb);
}
}

2.8 数据类型转换

2.8.1 隐式数据类型转换

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算。

2.8.2 代码实战

public class ConversionDemo {
public static void main(String[] args) {
//定义两个int类型的变量
int a = 10;
int b = 20;
System.out.println(a+b);
//我可以把a+b的结果进行输出,说明这个计算的结果是没有问题的
//那么,我应该也可以把这个结果接收一下。
int c = a + b;
System.out.println(c);
System.out.println("-----------------"); //定义两个变量,一个int类型,一个byte类型
int aa = 10;
byte bb = 20;
System.out.println(aa+bb);
//下面这种写法报错了
//byte cc = aa+bb;
int cc = aa + bb;
System.out.println(cc);
}
}

2.8.3 强制类型数据转换

强制转换的格式:

目标类型 变量名=(目标类型)(被转换的数据);

强制转换的注意事项:如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同。

2.8.4 代码实战

public class ConversionDemo2 {
public static void main(String[] args) {
//定义两个变量,一个int类型,一个byte类型
int a = 10;
byte b = 20;
int c = a + b;
System.out.println(c); byte d = 30;
byte e = (byte)(a + b);
System.out.println(e);
}
}

零基础学Java第一节(语法格式、数据类型)的更多相关文章

  1. 零基础学Java第二节(运算符、输入、选择流程控制)

    本篇文章是<零基础学Java>专栏的第二篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 第一章 运算符 1.1 算术运算符的概述和用法 运算符 对常量和变 ...

  2. 零基础学Java第四节(字符串相关类)

    本篇文章是<零基础学Java>专栏的第四篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! String 本文章首发于公众号[编程攻略] 在Java中,我们经 ...

  3. 零基础学Java第五节(面向对象一)

    本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...

  4. 零基础学Java第六节(面向对象二)

    本篇文章是<零基础学Java>专栏的第六篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 继承 创建一个Person类 我们 ...

  5. 零基础学Java,PayPal技术专家手把手带你入门

    在最权威的 TIOBE 编程语言排名榜单上,Java 常年稳居第一,可以说是世界上应用最为广泛的一门语言. 同时,在微服务.云计算.大数据.Android App 开发等领域,Java 也是当之无愧的 ...

  6. 零基础学Java第三节(基本输入输出)

    本篇文章是<零基础学Java>专栏的第三篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] Java程序的命令行参数 我们可以 ...

  7. [零基础学JAVA]Java SE基础部分-04. 分支、循环语句

    转自:http://redking.blog.51cto.com/27212/116751 1.课程名称:分支.循环 本季为JAVA程序中最重要的部分,在讲解的时候除了讲解各种主要的控制语句(分支语句 ...

  8. 零基础学Java(1)初识Java程序

    前言 就国内来说,Java毫无疑问是后端语言中的No.1没有之一,所以今天我们也来0基础学习Java!!! Java的好处(针对测试工程师) 面试加分->涨薪 大多数公司服务端用的都是Java, ...

  9. 零基础学Java(3)运算符

    运算符 运算符用于连接值.Java提供了一组丰富的算术和逻辑运算符以及数学函数. 算术运算符 在Java中,使用算术运算符+.-.*./表示加.减.乘.除运算.当参与/运算的两个操作数都是整数时,表示 ...

随机推荐

  1. Citus 分布式 PostgreSQL 集群 - SQL Reference(查询处理)

    一个 Citus 集群由一个 coordinator 实例和多个 worker 实例组成. 数据在 worker 上进行分片和复制,而 coordinator 存储有关这些分片的元数据.向集群发出的所 ...

  2. 集合流之“将List<Integer>转为String并用逗号分割”

    1.使用[流+Collectors]转换 import java.util.ArrayList; import java.util.List; import java.util.stream.Coll ...

  3. python中一切皆对象的理解

    一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...

  4. translate3d 对 z-index 居然有影响

    在 Mobile 端需要注意. 安卓 默认浏览器 当中如果 div1 div2 如果 div1 有 translate3d 而 div2 没有 那么 div2 的 z-index 会无效. 解决办法: ...

  5. 《JavaScript Dom编程艺术》读书笔记(二)

    算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成.操作符是JavaScript为完成各种操作而定义的一些符号.等号(=).加号(+).减号(-).乘号(*).除号(/). 下 ...

  6. 可想实现一个自己的简单jQuery库?(九)

    Lesson-8 事件机制 在讲事件机制之前呢,我们有一个很重要的东西要先讲,那就是如何实现事件委托(代理). 只有必须先明白了如何实现一个事件委托,我们才能更好的去实现on和off.在我看来,on和 ...

  7. mysql实现in子句的limit查询 (转)

    在supesite里面执行一个SQL语句: select * from supe_spaceitems where catid=98 and itemid not in(select itemid f ...

  8. 微信小程序加密数据(encryptedData)解密中的PHP代码,php7.1报错

    问题描述 最近在开发微信小程序涉及到加密数据(encryptedData)的解密,用的是PHP代码,在运行后报错mcrypt_module_ xxx is deprecated,提示方法已过时了 经研 ...

  9. Redis 中的过期删除策略和内存淘汰机制

    Redis 中 key 的过期删除策略 前言 Redis 中 key 的过期删除策略 1.定时删除 2.惰性删除 3.定期删除 Redis 中过期删除策略 从库是否会脏读主库创建的过期键 内存淘汰机制 ...

  10. LazyCaptcha自定义随机验证码和字体

    介绍 LazyCaptcha是仿EasyCaptcha和SimpleCaptcha,基于.Net Standard 2.1的图形验证码模块. 目前Gitee 52star, 如果对您有帮助,请不吝啬点 ...