Java基础回顾

为什么要学习java

1、面向对象。三大特征(封装、继承、多态)、五大原则(单一职责原则、开放封闭原则、替换原则、依赖原则、接口分离原则)

2、跨平台、内存管理(jvm)

3、生态好

java环境安装 环境变量配置

官网下载对应的环境的包
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
网速慢可以从华为这个镜像下载
https://repo.huaweicloud.com/java/jdk/

windows和macos可以直接下载安装包安装

centos 下载压缩包配置环境变量

  vim  /etc/profile
	  #在末尾添加如下配置
	  export JAVA_HOME=/usr/local/java/jdk1.8.0_211
	  export CLASSPATH=.:$JAVA_HOME/lib/
	  export PATH=$PATH:$JAVA_HOME/bin
  source /etc/profile #刷新
  ## 查看版本
  java -version
mac jdk目录
/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home

编写第一个java程序

//每个语言的源头 hello word
//每个java程序的源头main方法
public class HelloWorld{
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}
#编译
javac HelloWord.java
#运行
java HelloWord

类:包名、类名、静态块、静态方法、实例方法、局部变量、全局变量、匿名内部类

import、 package

interface、class、enum、extends、implements

public、private 、 protected、无修饰符 :修饰类、方法、全局变量(其中protected不能修饰类)

  • static :修饰类、方法、全局变量

  • final:修饰类、全局变量、局部变量

  • 创建对象 :new、反射、clone

数据类型

  • 8大基础数据类型:short(2)、int(4)、long(8)、float(4)、double(8)、char(2)、byte(1)、boolean(1/8)

  • 特殊数据 void、null

  • Object:万物皆为对象

  • 数组

  • 常用数据结构类:Map、Set、List

  • 使用比较多的 :String、Date

  • 自动装箱、自动拆箱

浮点数

  • IEEE规范:
    IEEE-754: 符号-指数-底数
    双精度(64):1-11-52
    单精度(32):1-8-23
1、符号位(Sign) : 0代表正,1代表为负
2、指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
3、尾数部分(Mantissa):尾数部分
  • 浮点数二进制表示
    1、整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序
    2、小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。如果永远不为零,则按要求保留足够位数的小数,最后一位做0舍1入。将取出的整数顺序排列。
    符号位(Sign) : 0代表正,1代表为负
    指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
    尾数部分(Mantissa):尾数部分

    举例:22.8125 转二进制的计算过程:

    整数部分:除以2,商继续除以2,得到0为止,将余数逆序排列。
    22 / 2 11 余0
    11/2 5 余 1
    5 /2 2 余 1
    2 /2 1 余 0
    1 /2 0 余 1
    得到22的二进制是10110

    小数部分:乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。
    0.8125x2=1.625 取整1,小数部分是0.625
    0.625x2=1.25 取整1,小数部分是0.25
    0.25x2=0.5 取整0,小数部分是0.5
    0.5x2=1.0 取整1,小数部分是0,

    得到0.8125的二进制是0.1101

    结果:十进制22.8125等于二进制00010110.1101

  • 二进制如何运算:
    1、二进制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位);

    2、二进制的减法:0-0=0,10-1=1(向高位借位) 1-0=1,1-1=0 (模二加运算或异或运算) ;

    3、二进制的乘法:0 * 0 = 0 0 * 1 = 0,1 * 0 = 0,1 * 1 = 1

    4、二进制的除法:0÷0 = 0,0÷1 = 0,1÷0 = 0 (无意义),1÷1 = 1 ;

    5、逻辑运算二进制的或运算:遇1得1 二进制的与运算:遇0得0 二进制的非运算:各位取反。

逻辑语法

if 、else、else if、for 、while、 do while、switch、case、 continue、 break、default、return、instanceof

+ - * / % ++ – & | ^ ~ && ||

异常 Throwable、Exception 、RuntimeException、Error、try catch、finally、throw、throws

多线程修饰:synchronized、volatile

synchronized:
volatile:

使用较少的关键字 const、goto

const:
goto:

IO:文件io 网络io

字节流、字符流

Reader Writer

InputStream OutputStream

File FileOutputStream FileInputStream

ByteArrayOutputStream ByteArrayInputStream

文件NIO
1、NIO是面向缓冲、通道的;传统IO面向流
通道是双向的既可以写、也可以读;传统IO只能是单向的
环境结构:当前位置(position)、限制(limit)、容量(capacity)
2、NIO可以设置为异步;传统IO只能是阻塞,同步的

BIO:阻塞、同步
NIO:阻塞、异步
AIO:非阻塞、异步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

年迈程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值