java笔记

课程体系:
JavaSE-数据结构与算法-MySQL数据库-JavaWeb-JVM虚拟机优化-Java高并发-SSM框架-SpringBoot- SpringCloud-Hadoop
学习方法:
多敲,多练,多总结
网站
优快云 查问题 写博客
牛客网 做选择题
力克网 编程题

任务
上三休一 为一周期 休息的一天交作业(下午六点之前交作业)
任务:在牛客网 Java选择题每期30道,智力题6道,数量关系题6道,判断推理6道
csdn上笔记总结
leetcode 3道编程题(一个小时写不出来没关系,实在做不出来查别人的思路)
一个录屏作业(标记的作业,第一道第二道…)
惩罚措施:
一次作业没完成 警告
两次作业没完成 约谈
三次作业没完成 劝退

第一部分 语法基础篇

第一章 概述
1.1计算机组成部分
硬件、软件
硬件是可以看见的一些物理部分部分,都是一些电子元器件
软件是看不得到的部分,它是一些列的指令,这些指令主要用于控制硬件来完成一些列特定的工作
常见的硬件:
cpu:Center Processing Unit中央处理器 主要指令控制和数值计算功能
内存 :临时性储存数据的存储设备RAM,当内存不通电的时候,这数据也就消失了
显卡 GPU:Graphic Processing Unit图形图像处理单元 主要用于计算图形数据

存储设备:永久性存储设备ROM 任何数据都是以二进制的形式存储的
机械硬盘
固态硬盘
U盘
光盘
移动硬盘
输入输出设备
键盘:输入字符数据
鼠标:输入定位数据
显示器:输出图形图像文本数据
扬声器:输出声音数据
麦克风:输入声音数据
打印机:输出图形图像文本数据
扫描仪:输入图形图像数据
网络设备
输入:从互联网上下载数据
输出:从本地上传数据到互联网
在这里插入图片描述

1.2人机交互方式

我们如何与计算机打交道

图形化界面操作方式:操作简单,表现直观,容易上手操作,步骤繁琐,占用空间大
命令行操作方式CMD(Command win+R输入cmd回车)窗口:操作复杂,命令较多,不容易上手,步骤简单,占用空间小,适合远程操作

常用dos命令
c:进入c盘根目录
d:进入D盘根目录
cdxxx进入xxx目录
dir 查看当前目录下有什么文件和目录
cd/进入到当前所在盘符的根目录
cd…返回上一级目录
cls清屏
exit退出cmd窗口

1.3计算机语言

计算机本身就是有一系列物理硬件组成的,它们之间的沟通方式就是电信号,高低电压-二进制数

所以和计算机之间打交道,就得通过二进制来做,早期的编程语言/命令都是以二进制形式存在

机器语言
根据平台的不同其所表现的形式也不同,为了让计算机能够懂得人类的目的,人类必须以二进制的
形式向计算机输入数据。计算机能懂,人不太懂,对初学者十分不友好的。比如要计算两个数字的加法
100101001010100101010101

汇编语言
通过一些单词也叫助记符,将一些常用的操作用单词表示,在程序中慢慢出现了人类的语言。比如
计算2+3的结果,在汇编语言里是一下结果。这种代码计算机读不懂,还得将这些助记符包括数据转换
成对应的二进制提交给计算机进行计算。转换的工具,称之为汇编器。汇编语言它的计算方式,还是依
赖于计算机的计算方式的。想学好汇编语言,还得事先了解计算机的工作原理。
add 2,3 reslut

在这里插入图片描述

高级编程语言
从20世纪50年代产生,第一个众所周知的高级编程语言:C语言->C++语言->Java语言->C#-Python
高级编程语言完全由单词,符号和数字组成,并且书写流程也是符号人类流程。比如计算2+3如下
代码所示,更容易让人类去理解。同样计算机不能够读懂这段代码,还得将代码进行转换二进制提交给
计算机。转换的形式:编译,解释
静态编译语言:C C++ Java
静态:在定义变量的时候有明确的数据类型的区分
编译:将源代码全部进行编译 生成一个可执行的二进制文件 计算机去执行这个二进
制文件来运行程序。(翻译一本英文书)
动态解释语言:Python JS
动态:在定义变量的时候没有明确的数据类型的区分
解释:将源代码从头到尾 读取一行 编译一行 运行一行(同声传译)
软件的分类:
系统软件:也称之为是操作系统,主要是用来控制和底层管理硬件的一套指令,操作系统为用户提供最基本的计算机功能。
应用软件:基于系统之上的为用户带了特定领域服务的软件。

1.4软件与软件开发
软件是指一系列按照特定顺序组织的计算机数据与指令的集合

软件 分为:系统软件和应用软件

软件开发的定义就是去编写上述软件。

软件开发的流程:
1、需求分析
2、编码实现
3、测试编码
4、上线运维
5、更新迭代
6、下线

软件岗位
移动端软件研发Anroid IOS-物联网
Web前端研发 - 数据可视化工程师
PC端研发
后端研发
1.5Java语言介绍
Java语言的前身Oak(橡树),1994年詹姆斯高斯林和他的团队开发出来的嵌入式编程语言。随着
互联网的发展,紧随潮流编程互联网应用程序开发语言(面向对象),一直到2010年Sun公司被Oracle
收购,Java就属于Oralce的子产品。
在这里插入图片描述
Java开发环境搭建
JRE与JDK
JRE(Java Runtime Environment)Java运行环境:如果我们的计算机仅仅想运行Java程序的话,装
这个软件即可。JRE = JVM + 核心类库。
JDK(Java Development Kit)Java开发工具包:如果我们的计算机想要去开发一个Java程序的话,
装这个软件即可。JDK = 开发工具 + JRE。 JDK的下载与安装

  1. 先登录注册Oracle 2. 去Oralce官网下载JDK,最新JDK15,我们目前用JDK8 https://www.oracle.com 3. 点击Products 4. 点击SoxWare下的Java 5. 右上角DownloadJava 6. 找到JavaSE8 点击JDK Download 7. 下拉 在下载列表中选择Windows X64 8. 双击打开jdk安装程序
  2. 点击下一步
  3. JDK不需要更改目录 直接下一步
  4. JRE不需要更改目录 直接下一步
  5. 安装完成 点击关闭即可
  6. 验证jdk是否安装成功
  7. win+r 打开cmd 输入 java -version
    java version “1.8.0_77” Java™ SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot™ 64-Bit Server VM (build 25.77-b03, mixed mode)
    说明安装成功!
    jdk安装目录介绍
    bin目录:binary放的都是开发工具
    javac.exe:java编译工具
    用法: javac java.exe:java运行工具
    用法: java [-options] class [args…] (执行类) 或 java [-options] -jar jarfile [args…] (执行 jar 文件) db 目录:放的是支持数据库开发的一些工具包
    include目录:放的是一些链接底层的一些C头文件代码
    jre目录:jdk自带的运行环境
    lib目录:library 存放的是一些第三方Java库 javafx-src.zip:javafx图形化界面开发的源码包
    src.zip:Java本身的源代码包

C:\Users\HENG>cd / C:>cd “Program Files” C:\Program Files>cd Java C:\Program Files\Java>cd jdk1.8.0_77 C:\Program Files\Java\jdk1.8.0_77>cd bin
1.7运行Java程序

VSCode代码编辑器 https://code.visualstudio.com/
汉化:左下角管理 Extension 搜索Chinese 选择Chinese中文简体汉化包 点击绿色install 右下角提示
重启 重启即可
主题:管理 颜色主题 自选
编码:管理 设置 文本编辑器 文件 Encoding 选择gbk结尾
C:\Users\HENG>cd / C:>cd “Program Files” C:\Program Files>cd Java C:\Program Files\Java>cd jdk1.8.0_77 C:\Program Files\Java\jdk1.8.0_77>cd bin
字体:管理 设置 文本编辑器 字体 font size
关联代码所在的文件夹:文件 打开文件夹 选择JavaDay01
步骤一:新建Java源代码文件并写入类
点击新建文件按钮,输入Java源代码文件名称和后缀名,例如Sample01.java
在文件中写入如下代码:
public class Sample{
}
步骤二:编译该源代码文件
步骤三:运行该字节码文件
1.8常见错误
语法错误
指在编译的过程中出现的一些错误,这种错误的原因主要由那些因素产生呢?
单词评写
遗漏分号
使用中文符号的问题
大括号不匹配
遗漏关键字单词
运行错误
是指编译能够通过,但是在运行期间出现的问题
逻辑错误
代码的运行结果和自己认为的结果不一样!
遗漏括号
遗漏分号
遗漏引号
非法使用中文符号
单词拼写错误
1.9编程练习题
课后作业
Demo02 Demo03 Demo05

第2章 数据与运算

2.1关键字
关键字是指被高级编程语言赋予特殊含义的一些单词,关键字一般都是由小写字母组成。好比是汉
语当中的一些专有名词:北京,天安门,兵马俑。不能乱用。
用于定义数据类型的关键字:byte short int long float double char boolean void class interface
用于定义数据类型值的关键字:true false null
用于定义流程控制语句的关键字:if else switch case default while do for break continue return
用于定义访问权限修饰符的关键字:public protected private
用于定义继承关系的关键字:extends implements
用于定义实例对象的关键字:new this super instanceof
用于定义函数类型的关键字:static final abstract synchronized
用于处理异常的关键字:try catch finally throw throws public class Demo01 { public static void main(String[] args) { System.out.println((9.5 * 4.5 - 2.5 * 3) / (45.5 - 3.5)); } }public class Demo04 { public static void main(String[] args) { System.out.println(14 / 1.6 / (45 * 60 + 30) * 3600 + “英里/小时”); } }public class Demo06 { public static void main(String[] args) { System.out.println(“x=” + (44.5 * 0.55 - 50.2 * 5.9) / (3.4 * 0.55 - 50.2 * 2.1)); System.out.println(“y=” + (3.4 * 5.9 - 44.5 * 2.1) / (3.4 * 0.55 - 50.2 * 2.1));} }
用于包的关键字:package import
其他的一些修饰关键字:native assert volatile transient
2.2标识符
标识符指的是我们在程序中对变量、函数、类、接口、常量所定义的名称,也就是说这些名称是我
们自定义的。
标识符必须满足以下组成规则:
标识符可以由数字、字母、下划线 _ 、美元符 $ 组成
标识符不能以数字开头,当然下划线和美元符其实是可以开头的,但不推荐
标识符不能是关键字
标识符也不能是Java内置类的名称
标识符可以为任意长度,但必须是一个连续的词
标识符严格区分大小写
标识符是为那些抽象的数据进行的自定义起名,为了方便程序的阅读和理解,起名尽量要有
含义,不要通篇都是a b c d e f g…。在一些特殊的情况下(循环里 特殊数学符号),可以使用i j k m n 之类的。
标识符命名的规范:
大驼峰式:主要针对类名,接口名。所有单词的首字母大写
小驼峰是:主要针对于变量名,函数名。除了第一个单词之外,其他单词首字母大写
常量规范:所有单词字母大写,单词与单词之间用下划线分隔
包名规范:所有单词字母小写,单词与单词之间用句号 . 分隔
2.3注释
注释是用于注解和说明程序的一些程序中的内置文本信息的,但这些内置文本不属于代码的范畴。
所以在对含有注释的源代码进行编译时,所生成的字节码中不含有注释。注释给人看的!
注释主要有三种:
单行注释 //注释内容 直到换行为止
多行注释 /* 注释内容 内部可以进行换行 /
文档注释 /
* 注释内容 内部可以进行换行 */ :文档注释可以被编译器识别,并生成相应
的程序说明书。对某一个类进行文档生成时,该类必须是public型
2.4常量与进制
常量就是指在程序中直接出现的一些数据,也叫字面量
常量都有哪些:
整数常量
小数常量
字符常量:由一个字母、数字、符号被单引号( ‘’ )标识的数据
字符串常量:由若干个字母、数字、符号被双引号( “” )标识的数据
布尔类型常量
null常量
二进制转十进制
在这里插入图片描述
规律就是:1 1 1 1 1 1 1 1 - 128 64 32 16 8 4 2 1 10010101 十进制是 128 + 16 + 4 + 1 = 149
十进制149 = 9 * 100 + 4 * 101 + 1 * 102
二进制1011 = 1 * 20 + 1 * 21 + 0 * 22 + 1 * 23 = 1 + 2 + 0 + 8 = 11
一个二进制位称之为是一个比特 bit;八个比特称之为一个字节 byte;字节是计算机当中的最小计
数单元。
1 byte = 8 bit 1 kb = 1024 byte 1 mk = 1024 kb 1 gb = 1024 mb 1 tb = 1024 gb
十进制转二进制
53 ÷ 2 = 26 ~ 1 26 ÷ 2 = 13 ~ 0 13 ÷ 2 = 6 ~ 1 6 ÷ 2 = 3 ~ 0 3 ÷ 2 = 1 ~ 1 1 ÷ 2 = 0 ~ 1
余数从下到上 110101 = 1 + 4 + 16 + 32 = 53
二进制转八进制
10010101 => 010-010-101 => 0225 = 5 * 80 + 2 * 81 + 2 * 82 =5 + 16 + 128 = 149
二进制转十六进制
10010101 => 1001-0101 => 0x95 = 5 * 160 + 9 ^ 161 = 5 + 144 = 149
二进制转六进制
10010101 => 149 149 ÷ 6 = 24 ~ 5 24 ÷ 6 = 4 ~ 0 4 ÷ 6 = 0 ~ 4
所以六进制为405 => 5 * 60 + 0 * 61 + 4 * 62 = 5 + 0 + 144 = 149
负数的二进制
-29的二进制 将正数部分的二进制先取反 再加1 即为负数的二进制
00011101 =>取反 11100010 =>加1 11100011
2.5变量
指的是变化的量
变量的本质就是在内存中程序所处的进程中的一个临时存储区域
该区域的存储值有限制的
该区域值的变化必须是同类型的或向下兼容的
该区域有其自身的物理内存地址-指针
该区域中 存储值的限制 和 数据的变化类型 由 数据类型 来决定
该区域中 其空间的分配 和 空间的物理内存地址 由计算机底层来决定
回顾一下指针
在这里插入图片描述
2.6数据类型
在Java当中,数据类型主要分为两大类:
基本数据类型:在变量的空间中存储数据
整型
byte 1字节 2^8 256 -128~127 -2^7 ~ 2^7 - 1 short 2字节 2^16 65536 -32768~32767 -2^15 ~ 2^15 - 1 int 4字节
long 8字节
浮点型
float 4字节
double 8字节
字符型
char 2字节
布尔型
boolean 不确定
引用数据类型:数据是在堆内存中存储,变量仅仅存放的是数据在堆内存中的地址
字符串
数组
对象

2.7运算符
算术运算符
在这里插入图片描述
赋值运算符
在这里插入图片描述
比较运算符
运算的结果为布尔类型

大于
< 小于
= 大于等于
<= 小于等于
!= 不等于
逻辑运算符
& 单与
| 单或
^ 异或
! 非&& 双与
|| 双或

位运算符
&位于
| 位或
^ 位异或

右移
<< 左移

三目运算符
在这里插入图片描述
2.8常见错误
未声明变量,未初始化变量而使用变量
整型溢出问题
取整错误
一个是小数的问题,小数主要去的是近似值 想要得到一个0.5这个值的话 有可能会得到0.4999999
一个是整数的问题,1/3 = 0.3333 * 3 = 0.99999 数学上1
超出预期的除法问题
/左右两边是整数,结果为整数,如果出现小数则结果为小数
额外冗余的输入对象
2.9编程练习题
课后作业Demo08 Demo10 Demo12 Demo13 Demo14 Demo16

第3章 流程控制语句

3.1if 条件语句
单分支if语句‘
在这里插入图片描述

在这里插入图片描述
多分支if-else-if语句、
…CodeA if (布尔表达式1) { 语句组A; } else if (布尔表达式2) { 语句组B; } else if (布尔表达式3) { 语句组C; } else { 语句组D; }…CodeB
在这里插入图片描述
3.2switch分支语句
与if分支语句一样,都是对条件的判断。switch一般用在条件较多的情况下,但是有一个重要的细节
及时,if语言可以对区间值或固定值进行判断,switch只能对固定值进行判断。
switch的一些使用细节
switch所传入的变量,char,byte,short,int,String或者枚举类型
值1,值2,一直到值n,这几个值必须是同一个数据类型的
当变量匹配的相关case的值的时候,执行case中的语句,直到遇到break结束;如果该case语句
中没有break,则继续向下执行,直到遇到另外一个break结束
3.3for循环语句
循环主要解决具有规律性的且具有重复性的代码问题,避免程序冗余

循环的四要素
1循环的初始化:循环的第1次执行从哪里开始
2循环的继续条件:循环从当前轮是否向后执行下一轮
3循环体:需要被循环执行的部分
4循环的步长、周期:当前循环到下一轮循环之间的变化
我们常见的循环问题可以分为两大类:
已知循环次数的 一般用for语句做
未知循环次数但是已知循环结束条件 一般用while语句做
3.4while循环语句
while循环主要用于解决循环次数未知,但循环结束条件已知的情况。
while其实和for循环是可以相互转换的,是因为都逃不开循环四要素
3.5break、continue跳转语句
break在循环语句中叫做终止语句,终止的是break最近的一层循环
continue在循环语句中叫做跳过语句,跳过本次循环开启下一轮循环
3.6编程练习题
课后作业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值