2020-07-12

7-10笔记整理

计算机基础

关于软件开发和计算机语言概述

**软件:**按照特定顺序组织的计算机数据和指令的合集

**开发:**软件的制作过程

**软件开发:**借助开工具与计算机语言制作软件

**语言:**人类进行沟通交流的各种表达符号,方便人与人之间进行沟通与信息交换

**计算机语言:**人与计算机之间进行信息交流沟通的一种特殊语言(计算机语言中也包含字符、符号等)

**常见的计算机语言:**C\C++、C#、java

人机交互

软件的出现实现了人与计算机之间更好的交互

**人机交互的两种方式:**图形化界面方式(简单直观,易接受,好上手操作)

​ 命令行方式(在控制台输入指定的指令,让计算机完成操作,需要记住一些命令)

键盘功能和快捷键

Ctrl+A 全选 Ctrl+C 复制 Ctrl+V 粘贴

Ctrl+X 剪切 Ctrl+Z 撤销 Ctrl+S 保存

Alt+F4 关闭窗口

window+R 运行 window+E 打开我的电脑 window+TAB 在打开的项目之间切换

Ctrl+Alt+Del 注销任务管理器

Shift+Delete 永久删除

拖动某项目时按Ctrl复制所选项目

打开DOS控制台

window+R—cmd—回车

Shift+右键—在此处打开命令窗口

开始—程序—附件—命令提示符

常见DOS命令

D: 盘符切换

dir 罗列当前目录下的文件和文件夹

cd 进入指定目录,跨盘要加 /d 参数

cd… 退回上一级目录,cd…/…/ 回退多级目录,cd\ 退回根目录

cls 清屏

md 创建目录

rd 删除目录(无内容)

rd /s 名称 删除有内容文件夹(询问)(不可恢复)

rd /q /s 名称 删除有内容文件夹(直接删除)(不可恢复)

del 删除文件,del *.txt 删除后缀名相同的文件(不可恢复)

exit 退出DOS命令行

calc 打开计算器

mspaint 打开画板

notepad 打开记事本

getmac 获取物理网卡地址

hostname 获取计算机名称

ipconfig /all 查看本机IP 网卡物理地址等信息

JAVA语言跨平台原理

JAVA语言特点:

​ 简单性—解释性

​ 面向对象—高能性

​ 分布式处理—多线程

​ 健壮性—多态

​ 结构中立—安全性

​ 开源、跨平台(JVM)

什么是跨平台性(操作系统)

​ 通过java语言编写的应用程序在不同的系统平台上都可以运行

Java语言跨平台原理

​ 在需要运行java应用程序的操作系统上,安装对应的Java虚拟机(JVM),由JVM负责java程序在该系统中运行

Java语言跨平台图解

  • 因为有了JVM,同一个java程序在三个不同操作系统中都可以执行,因此实现了java的跨平台性(可移植性)
  • java语言是跨平台的,JVM不跨平台
  • JVM不跨平台,针对不同的操作系统,java提供了不同的JVM,各个操作系统的可执行文件不同

JRE和JDK的概述

什么是JRE

​ java的运行环境,包括java虚拟机(JVM)和Java程序所需的核心类库等,运行一个开发好的java程序只需安装JRE即可

什么是JDK

​ java开发工具包,提供给java开发人员使用,包含了java的开发工具,也包括JRE。因此安装JDK后不需单独安装JRE

为什么JDK中包含一个JRE

  • 其一,开发完的程序,需要运行一下看看效果

  • 其二,最重要的是,JDK中的开发工具其实都是java语言编写的应用程序,为了方便使用才打包成exe文件,如果没有JRE,这些工具无法运行

JDK、JRE、JVM的作用和关系

​ 我们用JDK编写了一个java程序交由JRE运行起来,由JVM实现跨平台使用

HelloWord案例的编写和运行

创建一个HelloWord.java的文件(HelloWord程序的源文件)

class HelloWord{//class 类名
	public static void main(String[] args) {//添加主(main)方法/函数
		System.out.println("Hello World!");//在主方法的大括号添加输出语句
	}
}

编译:在HelloWord.java所在的目录中使用javac命令编译HelloWord源文件,生成字节码文件(后缀名为.class)

​ 格式:javac HelloWord.java(此时要有后缀名)

运行:在HelloWord.class所在的目录中使用java命令运行class字节码文件

​ 格式:java HelloWord(此时不要后缀名)

HelloWord案例常见问题小结

找不到文件

  • 文件扩展名隐藏导致编译失败 例:HelloWord.java(.txt)拓展名不正确

  • 文件名写错 例:javac HelooWord.java 文件名称出错

  • 路径不正确 例:源文件在C盘,而编译是在D盘目录中进行

单词拼写问题(注意大小写)

Class HelloWord{//class小写
	public static void mian(string[] args) {//main拼写问题、String首位大写
		system.out.println("Hello World!");//System首位大写
	}
}

括号匹配问题

class HelloWord//缺少类体的大括号
	public static void main(String[] args) {
		System.out.println("Hello World!";//缺少输出语句的小括号
	//缺少方法体的大括号
}

中英文问题

class HelloWord{
	public static void main(String[] args) {
		System.out.println("Hello World!")//使用英文字符;
	}
}
注释概述及其分类

**注释:**用于解释说明程序的文字

**注释的分类:**单行注释 格式://注释的文字

​ 多行注释 格式:/* 注释的文字 */

​ 文档注释 格式:/** 注释的文字 */

**注释怎么写:**先写思路,再写代码实现

**注释的作用:**解释说明程序,帮助我们调试程序

关键字的概述和使用

**关键字:**被java语言赋予特殊含义的单词

**关键字的特点:**组成关键字的字母都是小写

**常见关键字:**class,public,static,void…

关键字的注意事项

  • goto和const是java语言的保留字

  • 类似editplus这样的高级文本编辑器对关键字是有颜色变化的

标识符的概述和组成规则

见名知意

**标识符:**是给类,接口,方法,变量,常量等起名时使用的字符序列

标识符的组成规则

  • 英文的大小写字母

  • 数字字符

  • $和_

标识符的注意事项

  • 不能以数字开头

  • 不能是java中的关键字

  • 区分大小写

  • 不能使用特殊字符

标识符中常见的命名规则

(就是文件夹,为了解决同个目录下不能同时存在两个相同名称的文件)

  • 字母都是小写 itcast

类或者接口

  • 一个单词:首字母大写,其余字母小写 Student

  • 多个单词:每个单词首字母都大写,其余字母小写 StudentName

方法或者变量

  • 一个单词:字母全部小写 name

  • 多个单词:从第二个单词开始,首字母大写,其余字母小写 getName

常量

  • 一个单词:字母全是大写 NAME

  • 多个单词:字母全是大写,每个单词之间使用_隔开 STUDENG_MAX_AGE

软件下载与安装

JDK的下载和安装过程

下载

  • 官网:http://www.oracle.com

  • 历史版本下载网址:https://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html

JDK的安装

  • 安装路径不要有中文或者特殊符号如空格等

  • 所有和开发相关的软件最好安装目录统一

  • 不要在根目录下安装

验证安装是否成功

  • 通过DOS命令,切换到JDK安装的bin目录下,然后分别输入javac和java,如果正常显示一些内容,说明安装成功
JDK安装路径下的目录解释

bin目录:该目录用于存放一些可执行程序。

  • 如javac.exe(java编译器)、java.exe(java运行工具),jar.exe(打包工具)和javadoc.exe(文档生成工具)等。

db目录:db目录是一个小型的数据库。

  • 从JDK 6.0开始,Java中引用了一个新的成员JavaDB,这是一个纯Java实现、开源的数据库管理系统。

  • 这个数据库不仅轻便,而且支持JDBC 4.0所有的规范, 在学习JDBC 时,不再需要额外地安装一个数据库软件,选择直接使用JavaDB即可。

jre目录:"jre"是 Java Runtime Environment 的缩写,意为Java程序运行时环境。

  • 此目录是Java运行时环境的根目录,它包括Java虚拟机,运行时的类包,Java应用启动器以及一个bin目录,但不包含开发环境中的开发工具。

include目录:由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,该目录就是用于存放这些头文件的。

lib目录:lib是library的缩写,意为 Java 类库或库文件,是开发工具使用的归档包文件。

src.zip文件:src.zip为src文件夹的压缩文件,src中放置的是JDK核心类的源代码,通过该文件可以查看Java基础类的源代码。

Path环境变量的配置方式

步骤

  • (1):先配置JAVA_HOME

​ 在系统环境变量中: 新建JAVA_HOME

​ 变量值=D:\develop\Java\jdk1.7.0_72

  • (2):再修改path

​ 在path前面添加: %JAVA_HOME%\bin;

7-11笔记整理

JAVA语言基础

常量的概述和使用

什么是常量

  • 就是在程序而执行过程中其值不发生改变的量

JAVA中常量的分类

  • 字面值常量

  • 自定义常量

字面值常量的分类

  • 字符串常量:用双引号括起来的内容 例:“HelloWord”
class Demo{
	public static void main(String[] args) {
		System.out.println("Hello World!");
	}
}

输出:HelloWord!

  • 整数变量:所有整数 例:25
class Demo{
	public static void main(String[] args) {
		System.out.println(25);
	}
}

输出:25

  • 小数常量:所有小数 例:2.4
class Demo{
	public static void main(String[] args) {
		System.out.println(2.4);
	}
}

输出:2.4

  • 字符常量:用单引号括起来的内容 例:‘a’、‘A’、‘0’(单引号中只能是单个字母、数字、符号)
class Demo{
	public static void main(String[] args) {
		System.out.println('A');
	}
}

输出:A

  • 布尔常量:较为特有,只有true和false
class Demo{
	public static void main(String[] args) {
		System.out.println(true);
	}
}

输出:ture

  • 空常量:null
进制概述和二、八、十六进制图解

JAVA针对整数常量提供 了4种表现形式

  • 二进制、八进制、十进制、十六进制

什么是进制

  • 就是进位制,使人们规定的一种进位方法。对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。

  • 二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一

二进制的由来

  • 我们计算机中的电子元器件的状态位:开、关,而我们表示数据的时候也是使用这两种状态位来进行表示的。

  • 因为使用两个状态位来表示一个数据的时候远远不足以显示数字、字符和字母,使用国际化组织就规定了使用8个这样的单子元器件位来表示一个数据,这个数据的单位就是字节,计算机中对数据的存储的最小单位就是字节。

​ 1byte=8bit

​ 1k=1024byte

​ 1m=1024k

​ 1g=1024m

​ 1t=1024g

八进制的由来

  • 我们发现用二进制来表示数据的数据表现形式很长,可以对二进制数据进行优化,对二进制数据从右往左进行分组,每3位为一组,不够的左边补0,然后把每一组数据转换成十进制数据,再将十进制数据连接起来,就形成了八进制数据

十六进制的由来

  • 对二进制数据再次进行优化,依旧从右往左分组,每4位为一组,不够的左边补0,然后把每组数据包转换成十进制数据,再将十进制数据连接起来,就形成了十六进制数据

不同进制表现同一个数据的形式特点

  • 进制越大,表现形式越短
不同进制数据的表现形式

二进制的数据表现形式

  • 由0,1组成。 以0b开头(b可大写)
class Demo{
	public static void main(String[] args) {
		System.out.println(0b11011);
	}
}

输出:27

八进制的数据表现形式

  • 由0,1,2,3,4,5,6,7组成。 以0开头
class Demo{
	public static void main(String[] args) {
		System.out.println(011011);
	}
}

输出:4617

十进制的数据表现形式

  • 由0,1,2,3,4,5,6,7,8,9组成。 整数默认是十进制的
class Demo{
	public static void main(String[] args) {
		System.out.println(11011);
	}
}

输出:11011

十六进制的数据表现形式

  • 由0-9,a,b,c,d,e,f(大小写均可)。 以0x开头(x可大写)
class Demo{
	public static void main(String[] args) {
		System.out.println(0x11011);
	}
}

输出:69649

任意进制到十进制的转换图解

任意进制到十进制的转换原理(位权展开法)

  • 每一组的数据由3部分组成(系数、基数、权)

  • 系数:系数就是该位对应的值

  • 基数:X进制到10进制的转换,那么这个基数就是X

  • 权:对数据的每一位给出一个编号,而这个编号是从0开始,并且是从右往左的,那么每一组的权值就是该编号的值

  • 每一组的数据=系数*基数^权

  • 然后我们把每一组的数据加起来就完成了X进制到十进制的数据转换

二进制到十进制

0b100=1 *2^2+0 *2^1+0 *2^0

​ =4+0+0

​ =4

八进制到十进制

0100=1 *8^2+0 *8^1+0 *8^0

​ =64+0+0

​ =64

十六进制到十进制

0x100=1 *16^2+0 *16^1+0 *16^0

​ =256+0+0

​ =256

十进制到任意进制的转换图解

十进制到任意进制的转换原理

  • 除基取余,直到商为0,余数反转

  • 十进制到X进制这个基就是X

十进制到二进制

​ 52/2=26_0

​ 26/2=13_0

​ 13/2= 6_1

​ 6/2= 3_0

​ 3/2= 1_1

​ 1/2= 0_1

结果:ob110100

十进制到八进制

​ 52/8=6_4

​ 6/8=0_6

结果:064

十进制到十六进制

​ 52/16=3_4

​ 3/16=0_3

结果:0x34

快速的进制转换法

8421码及特点

  • 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种

  • 在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码

通过8421码的方式进行二进制和十进制的相互转换

二进制11111111
2^72^62^52^42^32^22^12^0
十进制1286432168421

二进制数据到十进制数据转换:0b110100=4+16+32=52

十进制数据到二进制数据转换:100-64-32-4=0

二进制到八进制的简易方式(100110)

​ 100 110

​ 4 6

结果046

二进制到十六进制的简易方式(100110)

​ 0010 0110

​ 2 6

结果:0x26

原码反码补码的讲解

有符号数据表示法的几种方式

  • 原码、反码、补码

  • 所有数据的运算都是采用补码进行的

+7 原码0 111 反码0 111 补码0 111

-7 原码1 111 反码1 000 补码1 001

  • 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小

  • 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外

  • 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1

变量的概述及格式

什么是变量

  • 在程序执行的过程中,在某个范围内其值可以发生改变的量(例如:苹果的价钱)

  • 变量其实是内存中的一小块区域

为什么要定义变量

  • 用来不断的存放同一类型的常量,并可以重复使用

变量的定义格式

  • 数据类型 变量名 = 变量值;
数据类型的概述和分类

为什么有数据类型

  • 我们都知道,变量其实就是内存中的一小块区域。我们定义一个变量,其实就是开辟了一个内存空间

  • java就给我们提供了不同的数据类型,那么针对不同的数据类型,在内存中分配了不同大小的内存空间

JAVA中数据类型的分类

  • 基本数据类型

  • 引用数据类型:数组,类,接口

基本数据类型的详细讲解

  • 数值型
整数型字节数范围
byte1(8bit)-128~127
short2(16bit)-215~215-1
int4(32bit)-231~231-1
long8(64bit)-263~263-1
浮点型字节数范围
float4(32bit)-3.40310^38 ~ 3.40310^38
double8(64bit)-1.79810^308 ~ 1.79810^308
  • 字符型
字节数
char2(16bit)0 ~ 2^16 - 1 = 65535
  • 布尔型
字节数
boolean1(8bit)false、true

整数默认是int类型,浮点数默认是double类型的

定义不同数据类型的变量
class Demo{
	public static void main(String[] args) {
		int t=222;//定义基本数据的变量,要在数型范围内,222不能使用byte定义
		System.out.println(t);
	}
}

输出:222

使用变量的注意事项

  • 作用域问题
class Demo{
	public static void main(String[] args) {
		int t=222;
        int t=111;//同一作用域不能定义同名变量
		System.out.println(t);
	}
}

报错原因:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

  • 初始化值问题
class Demo{
	public static void main(String[] args) {
		int t;//没有初始化值
		System.out.println(t);
	}
}

报错原因:没有初始化值不能直接使用

  • 在一行上建议只定义一个变量,可以定义多个,但是不建议
class Demo{
	public static void main(String[] args) {
		int t=222;int p=111;//可以同行,但不建议
		System.out.println(t);
		System.out.println(p);
	}
}

输出:222;111

数据类型转换之隐式转换
  • int+int
class Demo{
	public static void main(String[] args) {
		int a=10;
		int b=20;
		int t=a+b;
		System.out.println(t);
	}
}

输出:30

  • byte+int,输出byte
class Demo{
	public static void main(String[] args) {
		byte a=10;
		int b=20;
		byte t=a+b;
		System.out.println(t);
	}
}

报错原因:运算默认输出int,从int转换到byte可能会有数据损失

  • byte+int,输出int
class Demo{
	public static void main(String[] args) {
		byte a=10;
		int b=20;
		int t=a+b;
		System.out.println(t);
	}
}

输出:30

JAVA中的默认转换规则

  • boolean类型不能转换为其他的数据类型

  • byte,short,char—int—long—float—double

  • byte,short,char之间不转换,他们参与运算首先转换为int类型

数据类型转换之强制转换

不想改变数据类型的时候可以使用强制转换

强制转换的格式

  • 目标数据类型 变量名=(目标数据类型)(被转换的数据);

强制转换的注意事项

  • 尽量不要使用强制类型转化,因为可能存在损失精度的问题

  • byte+int结果赋值给byte,加强制类型转换

class Demo{
	public static void main(String[] args) {
		byte a=10;
		int b=200;
		byte t=(byte)(a+b);//强制类型转换到byte
		System.out.println(t);
	}
}

输出:-46

变量相加和常量相加的区别

面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由

class Demo{
	public static void main(String[] args) {
		byte b1 = 3;
	    byte b2 = 4;
	    byte b3 = b1 + b2;//变量相加,类型转换为int
	    byte b4 = 3 + 4;
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);
		System.out.println(b4);
	}
}

报错原因:变量相加的时候类型转换为int

Java语言中的字符char可以存储一个中文汉字吗?

class Demo{
	public static void main(String[] args) {
		char ch='你';//字符要加单引号哦,不要忘啦!
		System.out.println(ch);
	}
}

输出:你

  • 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节

  • 所以,Java中的字符可以存储一个中文汉字

字符和字符串参与运算

ASCII码表(由输出’a’和’a’+1引出)

class Demo{
	public static void main(String[] args) {
		System.out.println('a');
		System.out.println('a'+1);
	}
}

输出:a;98

  • 因此得到ASCII码表中’a’为97

ASCII码表中需要记住的三个值

class Demo{
	public static void main(String[] args) {
		System.out.println('0'+1);
	}
}

输出49

'0’为47

class Demo{
	public static void main(String[] args) {
		System.out.println('a'+1);
	}
}

输出:98

'a’为97

class Demo{
	public static void main(String[] args) {
		System.out.println('A'+1);
	}
}

输出:66

'A’为65

字符与字符串运算

class Demo{
	public static void main(String[] args) {
		System.out.println("hello" + 'a' + 1);
	    System.out.println('a' + 1 + "hello");
	}
}

输出:helloa1;98hello

  • "+"号两端任意一端是字符串时,+号做连接作用,从左到右依次计算,(括号例外)
算术运算符的基本用法

什么是运算符

  • 对常量和变量进行操作的符号称为运算符

运算符的分类

  • 算术运算符

  • 赋值运算符

  • 比较运算符

  • 逻辑运算符

  • 位运算符

  • 三目运算符

算术运算符有哪些

​ +,-,*,/,%,++,–

算术运算符的注意事项

  • 整数相除只能得到整数。如果想得到小数,请使用浮点数

  • /获取的是除法操作的商,%获取的是除法操作的余数

  • %运算结果的符号,取决于参与运算时左边的符号

算术运算符++和–的用法

++,–运算符的作用

  • 自加(++)自减(–)运算

  • ++:自加。对原有的数据进行+1

  • –:自减。对原有的数据进行-1

单独使用

  • 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)

​ i++、++i、i–、--i

class Demo{
	public static void main(String[] args) {
		int i=10;//++只能对变量使用
        i++;
        System.out.println(i);//这一步好像也带点赋值的意思
	}
}

输出:11

class Demo{
	public static void main(String[] args) {
		int i=10;//++只能对变量使用
        ++i;
        System.out.println(i);//这一步好像也带点赋值的意思
	}
}

输出:11

class Demo{
	public static void main(String[] args) {
		int i=10;//++只能对变量使用
        i--;
        System.out.println(i);//这一步好像也带点赋值的意思
	}
}

输出:9

class Demo{
	public static void main(String[] args) {
		int i=10;//++只能对变量使用
        --i;
        System.out.println(i);//这一步好像也带点赋值的意思
	}
}

输出:9

参与运算使用

  • 放在操作数的前面,先自增或者自减,然后再参与运算

  • 放在操作数的后面,先参与运算,再自增或者自减

算术运算符++和–的练习
  • 请分别计算出a,b,c的值?
class Demo{
	public static void main(String[] args) {
		int a = 10;
	    int b = 10;
	    int c = 10;
		a = b++;//先让a变成b,再给b+1,a=10,b=11
		c = --a;//先给a-1,再让c变成a,a=9,c=9
		b = ++a;//先给a+1,再让b变成a,a=10,b=10
		a = c--;//先让a变成c,再给c-1,a=9,c=8
        System.out.println(a);//a=9
		System.out.println(b);//b=10
		System.out.println(c);//c=8
	}
}

输出:9;10;8

  • 请分别计算出x,y的值?
class Demo{
	public static void main(String[] args) {
		int x = 4;
        //先让y变成x,再给x+1,y=4,x=5
        //先给x+1,再给y+x,x=6,y=10
        //给y加x的10倍,y=6*10+10=70
		int y = (x++) + (++x) + (x*10);
        System.out.println(x);//x=6
		System.out.println(y);//y=70
	}
}

输出:6;70

赋值运算符的基本用法

赋值运算符有哪些

​ =, +=,-=,*=,/=,%=

注意事项

  • 基本的赋值运算符:= 把=右边的数据赋值给左边

  • 扩展的赋值运算符:+=,-=,*=,/=,%= += 把左边和右边做加法,然后赋值给左边

  • 赋值运算符要求左边的数据必须是一个变量

class Demo{
	public static void main(String[] args) {
		int a = 10;
		a +=1;
        System.out.println(a);
	}
}

输出:11

看下面的程序是否有问题,如果有问题,请指出并说明理由

class Demo{
	public static void main(String[] args) {
		//short s=1;s = s+1;变量进行运算,类型转换要为int
        //System.out.println(s);
		short v=1;v+=1;//"+="会自动类型强制转换
		System.out.println(v);
	}
}

输出:2

关系运算符的基本用法及其注意事项

关系运算符有哪些

​ == ,!= , < , > , <= , >= , instanceof

注意事项

  • 无论你的操作是简单还是复杂,结果是boolean类型

  • “==“不能写成”=”

class Demo{
	public static void main(String[] args) {
		int a=10;
		int b=11;
		System.out.println(a==b);
	}
}

输出:false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值