【JAVA】第一章 JAVA入门

0. 二进制概念

0.1 什么叫二进制

1. 生活中的数字1,2,3,4....叫十进制数字,人类可以看得懂,计算机却看不懂
2. 计算机能读懂的数字只有二进制数字,所以二进制数字又叫机器数
3. 二进制是由0和1组成的数字
4. 二进制可以与十进制数字转换
5. 负数的二进制是以补码形式在计算机中存储

0.2 二进制与十进制的转换

0.2.1 二进制转成十进制

二进制数字每一位数字*2的(n-1)次方 ,再相加,就是十进制
n:表示该位在二进制数字中的位置(从小数点开始增大)

在这里插入图片描述

0.2.2 十进制转成二进制

十进制数不断对2求商,倒序取余

在这里插入图片描述

0.3 原码反码补码概念

0.3.1 bit 和byte

1. bite(b比特):计算机中最小的数据计量单位,1比特的值只能是一个二进制的“1”或者“0”
2. byte:是比bit更大的数据计量单位,1byte=8bit
3. bit和byte都是计算机中数据的计量单位
4. 电脑64位表示计算机在同一时间可以计算64个比特位(也就是8byte/字节)的数据

0.3.2 原码

1. 正数:正数原码就是它对应的二进制数
2. 负数:负数原码就是绝对值大小转换成的二进制数,在最高位补1

在这里插入图片描述
在这里插入图片描述

0.3.3 反码

1. 正数:正数反码与原码相同
2. 负数:负数的反码就是它的原码,除了符号位其余位数都取反(1->0; 0->1)
3. 符号位:在二进制中左边第一位数(最高位)用来表示一个数字的正或者负,1表示正数,0表示负数

在这里插入图片描述

0.3.4 补码

1. 正数:正数补码与原码相同
2. 负数:负数的补码就是它的原码,除了符号位其余位数都取反(1->0; 0->1),在最后一位加1,或者说负数的补码就是负数的反码+1.

在这里插入图片描述

1.JAVA 概念引入

1.1 Java是什么?

Java是一门面向对象的编程语言,可以编写应用程序application(app),Java是由C++语言编写,其中吸收了C++的各种优点,补足了C++的缺陷。

1.1.2 Java语言发展史

Java之父:
James Gosling [詹姆斯 高斯林] 加拿大人
1995年 在sun公司工作期间创造了Java
2010年 sun被Oracle收购之后从sun离职
2011年 加入谷歌,同年8月份从谷歌离职,之后加入Roboitics 任首席架构师
在这里插入图片描述
Java语言是美国sun(Stanford University Network)公司,在1995年推出的高级的编程语言,
在但是之初是为了在各种移动设备上进行程序开发的语言,之后2009年被Oracle公司收购,
目前Java语言属于Oracle公司.
Java语言早起名字Oak(橡树),后期更名为Java。

1.1.3 Java语言版本迭代

JDK就是一款软件,功能,编译和运行java代码,最早1996推出了JDK第一个版本;在这里插入图片描述
说明:目前市场上,公司作业开发主要以jdk7 & jdk8 为主,这两个版本比较稳定,符合企业使用标准

1.1.4 Java语言平台版本

  1. JavaME:(Java Micro edition )JavaME为在移动设备和嵌入式设备(比如手机,电视机机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。例如以前诺基亚手机小游戏打开时出现咖啡标志,就是使用JavaSE技术开发的。
  2. JavaSE:(Java Standard Edition)JavaSE包含支持Java web 服务开发的类,主要用于客户端图形界面软件开发。目前客户端软件开发已经不是互联网的主流,但是JavaSE技术是JavaEE&JavaME开发技术的基础。
  3. JavaEE:(Java Enterprise Editon)用于服务器、桌面、嵌入式环境和实时环境中使用
    的 Java 应用程序。主要用于互联网 B/S 架构软件的开发,所谓的B/S架构就是 浏览
    器/服务器 架构,目前是Java开发的主流.我们在就业的时候,都是从事JavaEE网站的开发(网站开发)

c/s架构:客户端/服务器(JavaSE早期做这个)
b/s架构:浏览器/服务器(目前流行)

1.1.5 Java语言特点

  1. 开源性:免费,开放源代码
  2. 面向对象性:java重要的编程理念,万物皆对象
  3. 跨平台性:java语言的使用可以无视操作系统之间的差异性
  4. 编译性:Java代码编辑完成是源文件,需要经过编译成.class字节码文件,计算机只能识别字节码文件,才能运行
  5. 动态性:java在执行过程中,可以修改内容

1.1.6 Java应用领域

  1. 移动互联网开发
  2. 网站
  3. 大数据
  4. 其他领域:手机应用后台,微型程序,游戏平台

1.2 Java语言跨平台的实现原理

  1. 跨平台:Java语言代码编写一次,代码就可以在不同操作系统中运行,并且可以得到相同的运行结果。
  2. 跨平台特点:一次编译,到处运行。java语言的使用可以无视操作系统之间的差异性
  3. JVM:java虚拟机,理解成一个软件,模拟计算机实现过程,一个虚拟机就像一个小型的计算机,主要功能就是可以运行标准的java代码,JVM虚拟机为java代码营造出相同运行环境。在这里插入图片描述

1.3 JDK & JRE & JVM

在这里插入图片描述

1.3.1 JVM

. JVM(Java Virtual Machine):Java虚拟机,是运行所有Java程序的假想虚拟机,是Java程序的运行环境,编写的Java代码都在JVM运行。

1.3.2 JRE

1. JRE(Java Runtime Environment):Java程序的运行时环境,单独的JVM虚拟机不能自己运行,需要支持JVM运行的功能代码,JRE包含JVM运行时所需要的核心类库。

2.  核心类库:有很多功能代码,为了方便管理,将代码放到一个库中管理,就是核心类库。

3. JRE=  JVM + JVM运行时所需要的核心类库(支持,依赖)功能。

1.3.3 JDK

1.   JDK (Java Development Kit):Java程序开发工具包,包含JRE和开发人员使用的工具,(如java.exe(编译器,javac,java,jdb等和javaAPI),javadoc.exe(可以自动为Java代码生成说明文档):2. 

2. JDK主要功能就是进行Java代码的编译和运行。

3. 主流的JDK是Orecle的JDK,许多公司就开发自己的JDK以适应自己的需求

4. JDK下面有五个文件夹:
(1)一些描述文件
(2)一个src压缩文件
(3)bin文件夹:最主要的是编译器javac.exe
(4)lib 文件:类库,开发中需要使用到的一些jdk提供的类
(5)jre文件夹:运行环境,运行java程序所需要的环境

5. 所以安装JDK就不必再单独安装jre,jdk可以安装在电脑的任何位置

1.3.4 jdk与jre的区别

jre是java程序运行时需要的环境
jdk是开发java应用程序的开发工具

2. 开发环境搭建

2.1 DOS命令的介绍和使用

  1. 计算语言中,人机的两大交互方式
  • CLI:命令行界面—dos窗口
  • GUI:图形化界面—Windows系统
  1. DOS是一个早期的操作系统,是一个纯命令操作系统,不便于使用,现在已经被Windows系统取代,但是需要掌握一些dos基本命令。
  2. DOS窗口打开方式:
  • Windows + r --> 输入cmd – 回车:位置处于当前用户文件夹的根目录
  • 在本地磁盘任何一个文件夹输入cmd:在那个文件夹输入cmd就定位到那个文件夹。
  • 在资源浏览器地址栏 ctrl+E 中输入 cmd 默认定位到System32文件夹下,这个文件夹下有cmd.exe。
  1. 常用dos命令:
dir                 //查看当前路径下的内容
cd 目录路径  // 进入单级目录,进入指定文件夹路径下,例如cd vedio
cls                 //清屏
盘符:          //切换磁盘,例如 D:
cd ..              // 返回上一层目录

2.2 JDK下载&安装&卸载

官网 www.oracle.com
都有教程,尽量自己学会看官方文档。

3. java入门案例

3.1 程序编写

  1. 首先创建一个HelloWorld.txt文件。
  2. 修改后缀名,变成HelloWorld.java文件。
  3. 用自带笔记本软件打开文件,编写程序。
public class HelloWorld {
 //主方法
  public static void main(String[] args) {
   //输出语句
   System.out.println("HelloWorld");
  }
}

3.2 编译和运行

java程序编写好之后需要经过编译,生成字节码文件,字节码文件交给java虚拟机JVM进行执行。
4个步骤:

  1. 编辑:创建.java文件,编写代码。
  2. 编译:将java源文件编译成.class文件(虚拟机只能识别.class文件,机器语言)。
  3. 运行:使用JDK文件夹下的命令运行.class文件。
  4. 调试:代码出现问题,发现问题,解决问题。

3.3 格式规范及常见问题

  1. 格式规范(行业内部规则)
    (1) 在左大括号前面,要加一个空格
    (2) 在左大括号后要进行换行,缩进
    (3)右大括号要和本层次的代码对齐
    (4) 运算符两侧,要加上空格
    (5) 不同代码段之间,要加上空行
  2. 代码调试和常见问题
    (1)类名与文件名需要保持一致
    (2)非法字符问题:java中的符号必须英文格式
    (3)大小写问题:Java对大小写敏感,需要严格区分大小写。
    (4)在系统中显示文件的后缀名
    (5)编译命令后的java文件名需要带文件后缀.java
    (6)运行命令后的class文件名(类名)不带文件后缀
    (7) Java代码中, 括号必须成对出现({},(),[])
    (8)语句最后要加英文分号;

4. 开发工具选择

4.1 常用工具

  1. 系统自带的记事本软件
    优点: 不用安装 系统自带
    缺点: 没有提示 没有高亮显示 没有行号等功能
  2. 第三方记事本软件
    优点: 有少量提示 高亮显示代码 有行号
    缺点: 提示功能不够强大,不利于构建大型的项目
  3. 集成开发平台
    eclipse : 开源免费 可以集成各种插件,但是对插件的兼容性不好
    MyEclipse: 收费 自动集成了项目开发的插件, 是对Eclispe 的二次开发, 软件臃肿
    idea: 收费 目前最流行的java开发平台, 可以集成各种插件,功能强大,同时对电脑的硬件性能要求较高.

5. 基本概念

5.1 注释

  1. 注释作用
    (1)将代码置为无效状态
    (2)为代码添加解释说明(开发中有30%部分为注释内容)
    (3)帮助开发者记录编程思路辅助开发(梳理代码思路)
    (4) 帮助开发者迅速的定位错误代码,进行排错【代码调试】
  2. 分类:
    (1)单行注释 :使用一行区域来书写解释说明的内容
    格式: // 注释内容
    特点:不可以换行
    (2)多行注释:使用多行区域来书写解释说明的内容
    格式: /* 注释内容 /
    特点:可以换行
    (3)文档注释:
    格式: /
    ** 注释内容 ***/

5.2 关键字

  1. java中提前定义好的并且赋予了特殊的含义和功能的英文单词 这样的单词在java中总计有50个,但是在用的只有48个。
  2. 有goto和const两个单词没有使用,所以被称之为预留关键字【预留字】
    在这里插入图片描述

5.3 字符集和字符编码

1. 人类可以读懂的字符,计算机并不能读懂,比如它不知道a,不知道b

2. 字符集:做一个映射表,让字符映射一定的值,比如a映射一个数字X,B映射一个数字Y,计算机在处理字符的时候,计算机先到这个映射表中查找字符对应的数字,再对这些数字进行处理,这个映射表就是字符集。

3. 字符编码:将字符集中对应的字符转换成二进制的方式(规则),每种字符集都有自己对应的编码方式

5.3.1 字符集

1. ASC2字符集:计算机是美国人发明的,最早只有128个字符(大小写英文字母+数字+一些符号)被编码到计算机中映射对应的十进制数字,也就是只为这128个字符设置了映射关系,这个编码表就叫ASC2字符集。
----->计算机遇到字符,先去查找字符编码对应字符的十进制数字,再将十进制数字转换成二进制数字 
----->ASC2码字符集用1个字节(8bit位)byte来存储数据

2. 1个字节处理中文是不够的,至少需要2字节,并且不能和ASC2码映射关系发生冲突

3. GB2312:中国制定的字符集,在ASC2码的基础上加入中文编码,形成一个新的字符集

5.3.2 Unicode字符集

1. 世界语言众多,每个国家的字符编码有自己的标准,不指定字符集可能出现乱码,所以就需要统一的一套字符集---Unicode

2. Unicode:把所有语言都统一到一套字符集中,就不会出现乱码问题
(1)Unicode常用2字节表示一个字符,偏僻字符需要4字节
(2)现代操作系统和大多数编程语言都直接支持Unicode

3. 每个Unicode编码可以使用十进制表示,也可以使用八进制,十六进制表示,比较两字符的大小就会根据他们在字符集中的编码大小来比较,字符排序也是根据对应字符编码的大小
4.  ASC2字符集和Unicode字符集的区别
   ASC2码使用1字节存储字符,Unicode使用2或者4字节存储字符
   (1)A在ASC2码中十进制是65,二进制是01000001(1字节)
   (2)A在Unicode中十进制是65,二进制是0000000001000001(2字节);

5.3.3 UTF-8字符集

1. 问题:统一成Unicode字符集,乱码问题解决了,但是如果写的文本基本上都是英文的话,用Unicode就会比ASC2码多出一倍的存储空间,在存储和传输数据方面就会不划算

2. UTF-8字符集:把Unicode编码转化为可变长编码的UTF-8编码 ,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1~6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,很生僻的字会被编码成4~6字节

3. 如果传输文本包含大量英文字母,用UTF-8就会节省空间,提高传输速度
4. UTF-8兼容ASC2码

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值