Java语言基础 #基础语法 #Day1

文章目录

  • 一、开发前言
    • 1. 什么是java
    • 2. 基础知识
      • 2.1 二进制
      • 2.2 位
      • 2.3 DOS
  • 二、Java语言开发环境搭建
    • 1. Java虚拟机-->JVM
    • 2. JRE 和 JDK
  • 三、以HellowWorld为例
    • 1. 先写一个示例程序
    • 2. 注释
    • 3. 关键字
    • 4. 标识符
    • 5. 基本数据类型
    • 6. 常量
    • 7. 变量

一、开发前言

1. 什么是java

Java是美国的Sun公司,在1995年推出的高级编程语言。

  • 什么是高级编程语言呢?
    计算机只认得0和1,最开始的工程师为了上它,只能配合它,学习它的语言 (计算机就像个婴儿,所以我称之为“婴语”,“婴语”很难),从而和它交流。渐渐地人们发现,好多步骤是重复的,为了更好地玩耍,人们把这些步骤录了下来。只要输入一个单词 ,就会自动播放这段不堪回首的回忆。然后就有了一个自动放映的装置,这个叫做操作系统 。现在的操作系统更厉害,加上了图形界面,点击鼠标,就相当于自动输入单词。
    低级编程语言和高级编程语言的区别
    一个是说“婴语 ”的,一个是说“英语 ”的。

  • Java历史
    1995 年Sun公司发布Java1.0版本
    1997 年发布Java 1.1版本
    1998 年发布Java 1.2版本
    2000 年发布Java 1.3版本
    2002 年发布Java 1.4版本
    2004 年发布Java 1.5版本
    2006 年发布Java 1.6版本
    2009 年Oracle甲骨文公司收购Sun公司,并于2011发布Java 1.7版本
    2014 年发布Java 1.8版本
    2017 年发布Java 9.0版本

2. 基础知识

2.1 二进制

  • 一个小问题:
    你雇了一个挖掘机学徒为你炒菜七天,你现在有一个7cm长的金条,你答应七天后把金条给他。他担心你傻了,你担心他跑了,于是你们约定,工资每天结算。现在这个金条,你只能切两刀,怎么切?
  • 答案:切成1、2、4cm,第一天给他1cm,第二天给他2cm,收回1cm…

这其中的思想,就是二进制,即逢二进一。
十进制123,2所在就是十位,它的权是10,这个权叫位权;1所在的就是百位,位权为100。即位权分别为100、 10、 1。
二进制1101,位权分别为8、 4、 2、 1。

  • 进制转化:
    2进制–>10进制,乘以其位权。
    10进制–>2进制,除以其位权。
  • Demo:12转化为2进制
    12能除的最高位为8,余4,记为1
    4能除的最高位为4,余0,记为1
    2位和1位补全为0
    12–>1100
  • Demo:1100转化为10进制
    1100,第一位18,第二位14
    8+4=12

2.2 位

字节是我们常见的计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储,右键点击文件属性,
我们可以查看文件的字节大小。
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB

2.3 DOS

MS-DOS:microsoft的磁盘管理系统
现在已经不用DOS了,有了一个叫CMD的,模拟了DOS的大部分功能。(现在出了powershell,更强大)
win R
就是你键盘底下那个四块巧克力一样的图标,和R一起按
Java语言基础 #基础语法 #Day1_第1张图片
输入cmd进入命令提示符(图形界面是给你点击,自动输入单词的地方。这里就是给你自己手动输入单词的地方。)

  • 常用命令:
命令 操作符号
盘符切换命令 盘符名 :
查看当前文件夹 dir
进入文件夹命令 cd 文件夹名
退出文件夹命令 cd…
退出到磁盘根目录 cd\
清屏 cls
退出 exit

注: 个人对Linux更熟悉,所以后续教程会在Linux平台编写,不影响食用。不过我还是建议使用Linux,比较丝滑,Linux的使用,在我写的Linux教程中非常详细,只要先看前两篇,后面有问题再找对应的看即可(B站上也有很好的视频,搜Linux即可)。

二、Java语言开发环境搭建

Java具有跨平台性,跨指的是不区分,平台指的是操作系统。这样的渣女你爱嘛?

1. Java虚拟机–>JVM

  • JVM (Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
  • 跨平台 : 任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
    Java语言基础 #基础语法 #Day1_第2张图片

可以发现,其实就是翻译的问题,同一段代码,被不同的JVM翻译给不同的操作系统,达到相同的结果。就像把中文翻译成各个地方的语言:
我想买可乐–>I want to buy Coke
我想买可乐–>コーラを買いたいです
我想买可乐–>.au mi te vecnu la kokakolas

2. JRE 和 JDK

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
  • JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。

简而言之,如果我们活得太贫瘠了,想找渣女滋润下感情。酒店门下现成的小广告,就是JRE,打电话就是了。如果想自己找,自己去约,这个找到电话号码再到happy end的过程就叫JRE。

  • 我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
  • 我们想要开发一个全新的Java程序,那么必须安装 JDK 。
    Java语言基础 #基础语法 #Day1_第3张图片

三者关系: JDK > JRE > JVM
Java语言基础 #基础语法 #Day1_第4张图片

三、以HellowWorld为例

1. 先写一个示例程序

  • Java程序开发三步骤: 编写–> 编译–>运行
  1. vim HelloWorld.java
    在这里插入图片描述
  2. javac HelloWorld.java
  3. java HelloWorld
    在这里插入图片描述

2. 注释

  • 单行注释
// 这是一行注释
  • 多行注释(区块注释)
/*
    这是一个多行注释
    这是一个多行注释
    这是一个多行注释
*/
  • 注释就相当于在代码中写了笔记,这个笔记会被编译器略过,是给看代码的人员提醒用的。坚持写注释,是一个良好的习惯,是优秀程序员必备的品质。写代码要注意,不要描述过程,要描述功能。
    比如://下面5行利用了什么什么语法,我先怎样怎样再怎样怎样。(×)
    // 下面5行有打印HelloWorld的功能,不需要传入参数。(√)
/*
	public class代表定义一个类的名称。
	这个类名必须和所在文件名完全一样(区分大小写)
*/
public class HelloWorld{
    // 这是万年不变的固定写法,代表main方法(程序执行的起点)
	public static void main(String[] args){
	    // 打印在终端
		System.out.println("Hello, World!");
	}
}

3. 关键字

  • 在程序中有特殊含义,不能随意使用的字符,就叫做关键字
    比如日本鬼子 ,是我们为了表达自己的尊敬所说的(日本崇尚鬼神文化),平常不会乱用。
    对应于英语上,专有名词就类似关键字,不能随便用。把专有名词开头的大姐变小姐大写变小写的过程,就叫转义

  • 关键字特点:
    完全小写字母
    在编写软件中(如vim),有特殊颜色

4. 标识符

类的名称,方法的名称…就叫做标识符

  • 命名规则: (硬性规定,不硬就不能♂Play♂)
    标识符可以包含 英文字母 26个(区分大小写) 、 0 -9数字 、 $ (美元符号) 和 _ (下划线) 。
    标识符不能以数字开头。
    标识符不能是关键字。
  • 命名规范: (软性规定,软软的,很贴心)
    类名规范: 首字母大写,后面每个单词首字母大写(大驼峰式)。
    方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
    变量名规范: 全部小写。

5. 基本数据类型

  • 数据类型只有两种:
  • 基本数据类型(四类八种)
    整数型 byte short int long
    浮点型 float double
    字符型 char
    布尔型 boolean
  • 引用数据类型 字符串、数组、类、接口、Lambda…
数据类型 关键字 内存占用 取值范围
字节型 byte 1个字节 -128~127
短整型 short 2个字节 -32768~32767
整型 int(默认) 4个字节 -231次方~2的31次方-1
长整型 long 8个字节 -2的63次方~2的63次方-1
单精度浮点数 float 4个字节 1.4013E-45~3.4028E+38
双精度浮点数 double(默认) 8个字节 4.9E-324~1.7977E+308
字符型 char 2个字节 0-65535
布尔类型 boolean 1个字节 true,false
  • int 取值最大约 21 亿
  • float中E+38表示 * 10^(38)
  • 科学计数法省空间
  • char可以表示六万多种符号,即2^(16)

  • 注意事项:
  1. 字符串表示基本类型,是引用类型
  2. 浮点型可能只是一个近似值
  3. 数据范围与字节数不一定相关(比如float数据范围比long更广泛,但是字节更小)
  4. 浮点数默认类型是double,如果一定要使用float类型,需要加上一个后缀F(大小写都可,规范大写)
    整数默认int,long加后缀L

6. 常量

常量: 程序运行阶段,不变的量

  • 分类:
类型 含义 数据举例
整数常量 所有的整数 0,1, 567, -9
浮点数常量 所有的小数 0.0, -0.1, 2.55
字符常量 单引号引起来,只能写一个字符,必须有内容 ‘a’ , ’ ', ‘好’
字符串常量 双引号引起来,可以写多个字符,也可以不写 “A” ,“Hello” ,“你好” ,""
布尔常量 只有两个值(流程控制中讲解) true , false
空常量 只有一个值(引用数据类型中讲解),不能直接打印 null
  • 代码:
    Java语言基础 #基础语法 #Day1_第5张图片
  • 结果:
    Java语言基础 #基础语法 #Day1_第6张图片

7. 变量

/*
方式1:
数据类型 变量名称;  // 创建一个变量
变量名称 = 数据值;  // 给变量赋值

方式2:
数据类型 变量名称 = 数据值;
*/
  • 代码:
    Java语言基础 #基础语法 #Day1_第7张图片
  • 结果:
    在这里插入图片描述

  • 注意事项:
  1. 定义变量时,变量名不能重复
  2. long类型和float类型,不能丢后缀
  3. 右侧是数据值,不能超过左侧类型的范围
  4. 没有进行赋值的变量,不能使用
  5. 变量使用不能超过作用域范围
    【作用域】:从定义变量的一行,到直接所属的大括号结束为止
  6. 可以通过一个语句,创建多个变量(不推荐)
public class HelloWorld{
	public static void main(String[] args){
		byte num1 = 500;  // 右侧超过了byte的数据范围,报错
		long num2 = 700000000L;  // 必须加后缀
		float num3 = 1.3F;  // 必须加后缀
		byte num5 = num2;  // 将一个变量的值,赋给另一个变量
		System.out.println(num1);
		System.out.println(num2);
		System.out.println(num3);
		System.out.println(num5);
		{
			int num6 = 77;
			System.out.println(num7);
		}
		int num6 = 17;  // 不会报错,因为【作用域】不同
		System.out.println(num6);

		int a, b, c;  // 可以一起创建,分别赋值
		a = 11;
		b = 22;
		c = 33;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);

		int x = 10, y = 20, z = 30;  // 可以一起创建,分别赋值
		System.out.println(x);
		System.out.println(y);
		System.out.println(z);
	}
}

你可能感兴趣的:(java,Linux,javaee)