第一部分 编程基础与二进制

chapter1 编程基础

所谓的程序,基本上就是告诉计算机要操作的数据和执行的指令序列,即对什么数据做什么操作,比如:

  1. 读文档,就是将数据从磁盘加载到内存,然后输出到显示器上;
  2. 写文档,就是将数据从内存写回磁盘;
  3. 播放音乐,就是将音乐的数据加载到内存,然后写到声卡上;
  4. 聊天,就是从键盘接收聊天数据,放到内存,然后传给网卡,通过网络传给另一个人的网卡,再从网卡传到内存,显示在显示器上。

基本上,所有数据都需要放到内存进行处理,程序的很大一部分工作就是操作在内存中的数据。数据在计算机内部都是二进制表示的。

流程控制有两种:1.条件执行2.另一种是循环

Java语言基本数据类型

  • 整数类型:有4种整型byte/short/int/long,分别有不同的取值范围;
  • 小数类型:有2种类型float/double,有不同的取值范围和精度;
  • 字符类型:char,表示单个字符;
  • 真假类型:boolean,表示真假。

基本数据类型都有对应的数组类型,数组表示固定长度的同种数据类型的多条记录,这些数据在内存中连续存放。

Java是面相对象的语言,除了基本数据类型,其他都是对象类型

对象是由基本数据类型数组其他对象组合而成的。

所谓内存在程序看来就是一块有地址编号的连续的空间,数据放到内存中的某个位置后,为了方便地找到和操作这个数据,需要给这个位置起一个名字。编程语言通过变量这个概念来表示这个过程。

变量就是给数据起名字,方便找不同的数据,它的值可以改变,但含义不应变

赋值

数字常量默认为是int类型。
小数常量默认是double类型。
赋值时常把字符用单引号括起来,不使用双引号。

不能在给定初始值的同时给定长度:

int[] arr = new int[3]{1,2,3};

数组类型和基本类型的明显不同:

  • 一个基本类型变量,内存中只会有一块对应的内存空间。
  • 数组有两块:一块用于存储数组内容本身,另一块存储内容的位置。
  • 给数组中元素赋值是改变数组内容,给数组变量赋值则会让变量指向一个不同的位置。

switch

switch的转换和具体系统实现有关。如果分支比较少,可能会转换为跳转指令。如果分支比较多,使用条件跳转会进行很多次的比较运算,效率比较低,可能会使用一种更为高效的方式叫跳转表跳转表是一个映射表,存储了可能的值以及要跳转到的地址。

switch根据表达式的值找匹配的case,找到后执行后面的代码,碰到break时结束,如果没有找到匹配的值则执行default后的语句。
break是指跳出switch语句,执行switch后面的语句。
如果没有break语句,会继续执行后面case中的代码直到碰到break语句或switch结束。

循环控制

  • break用于跳出循环。
  • continue用于跳过循环体中剩下的代码,然后执行步进操作。

函数

  • 重写
  • 重载

chapter2 理解数据背后的二进制

UTF-8:
UTF-8使用变长字节表示,每个字符使用的字节个数与其Unicode编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多,使用的字节个数为1~4不等。

每一种编码都有一个映射表,存储其特有的字符编码和Unicode编号之间的对应关系,这个映射表是一个简化的说法,实际上可能就是一个映射或转换方法。

char本质上是一个固定占用两个字节的无符号正整数,这个正整数对应于Unicode编号,用于表示那个Unicode编号对应的字符。

其他部分连接

第二部分 面相对象
第三部分 泛型与容器
第四部分 文件
第五部分 并发
第六部分 动态与函数式编程
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值