湖州专业做网站,中铁建设集团门户网站登录,导航网站没有内页没有了,有学给宝宝做衣服的网站吗计算机基础
一、学前知识
1. 计算机组成 2. 进制的概念
#xff08;1#xff09;二进制的存储
计算机不管是内存还是硬盘#xff0c;都是以二进制的形式存储。如同一张巨大的表格#xff0c;里面都是由0和1组成。 二进制#xff1a;逢2进1 基数为2#xff0c;数值部分…计算机基础
一、学前知识
1. 计算机组成 2. 进制的概念
1二进制的存储
计算机不管是内存还是硬盘都是以二进制的形式存储。如同一张巨大的表格里面都是由0和1组成。 二进制逢2进1 基数为2数值部分用不同的数字0、1来表示。 逢2进1便是没有2的概念遇到2就像前面进一位比如2看到2向前进12用二进制表示便是103是11依此类推十进制逢十进一基数为10数值部分用0、1、2、3、4、5、6、7、8、9来表示.十六进制逢十六进一基数是16有十六种数字符号除了在十进制中的0至9外还另外用6个英文字母A、B、C、D、E、F来表示十进制数的10至15。
2二进制的存储单位
数据在计算机底层是如何存储的
都是采用二进制使用0、1按照逢2进1的规则表示数据来存储。
如何快速算出一个数据的二进制形式
除2取余法 6便表示为110 数据在计算机底层存储的最小单位是什么
字节一个字节等于8个二进制位1B 8b
二进制转十进制 3关于ASCll编码表 二、初识java
…
三、java环境搭建
1.安装java
将给定的安装包安装在电脑上我们一起去官方网站看看https://www.oracle.com/ 我们能看到目前java的版本已经更新到了java17但是企业中常用的还是java8原因是因为老的版本更加稳定不容易出现错误。我们可以根据实际需求自行选择安装版本。 系统会默认将jdk安装至C:\Program Files\Java目录下(这里最好自己指定目录目录中不要出现空格以及中文避免后续产生不必要的麻烦)
接着我们需要配置环境变量让其能够在任意窗口打开 path环境变量
用于记住程序路径方便在命令行任意路径启动程序
我在最初学习时也一直没弄懂环境变量是干嘛的我们以QQ为例再引入java的环境变量。帮助大家去直观的理解环境变量。
winr 输入cmd 打开命令行窗口 我们此时输入qq是没有效果的
首先找到QQ程序的执行路径通常在bin包发现有qq程序 将这个路径复制 打开环境变量设置 用户变量只针对当前用户 系统变量针对所有用户
点击path 将qq环境变量加进去 点击确定
此时再次在命令行执行qq你会发现 还是失败
为什么呢
因为我们的环境变量更改之后原来打开的命令行还没有生效重新打开命令行工具即可。 此时输入qq启动成功 接着我们引入正题配置java环境变量 在最新版本安装过程中会自动帮助我们配置好环境变量。 但是通常情况下是需要我们手动添加环境变量 同样的 找到jdk的bin目录复制路径添加到环境变量中 图A
配置JAVA_HOME环境变量 复制这个路径 新建环境变量 将最开始图A的那个变量替换通过%JAVA_HOME% 来固定位置 完成
java
java -version --查看jdk版本 有内容即可。 2.javac 和java的区别
我们编写的java程序都是高级语言计算机底层是不能够直接识别的需要通过javac工具的编译才能驱动机器干活。 3.命令行常用命令 四、编写第一个java程序
开发一个java程序其中要经历三个步骤 编写代码编译代码运行代码
下面看一个简单的 Java 程序它将输出字符串 Hello World
最初学习时我们可以使用记事本编写代码。这样的好处是能够更加熟悉Java的一个运行过程以及对代码的熟练度。 新建一个文件用记事本的方式打开 public class HelloWorld {public static void main(String[] args) {System.out.println(Hello world!); //这句话输出 Helllo world!}
}需要注意的是文件名要和类名完全一致否则会报错。 编写好之后通过在文件所在目录执行 javac HelloWorld.java 进行编译,然后运行 五、java工作原理jdk
1.jdk的组成 2.java的跨平台工作原理
一次编译处处可用核心是因为java公司为不同的平台提供了jvm虚拟机
## 变量
数据类型 1.自动类型转换机制
类型范围小的变量可以直接复制给类型范围大的变量
2.我们为什么要进行类型转换
因为在实际编写程序中会存在不同类型的变量赋值其他类型的变量。
3.什么是自动类型转换
类型范围小的变量可以直接赋值给类型范围大的变量。 byte 的运算结果会转换为int需要用int接收
数组
1.数组的基本概念
有一个需求某某学校招生了有一百个学生报名我想记录一下这一百个学生的年龄和姓名或者计算一下学生的平均年龄难道我们要定义一百个变量吗
string a 杨航
...
算了不写了。合理的做法一定是在内存里找一个片空间按顺序存起来。其实这个道理很简单计算机中我们有这样一种数据结构能帮助我们把想同类型的数据统一聚拢放在一起他就是【数组】。
2.数组的定义方式
定义
int[] nums;
初始化
nums new int[3];
赋值
nums[0] 1;
nums[1] 4;
nums[2] 3;// 直接定义初始化并赋值
int[] nums {1,2,3};// 这样写也行
int nums[] new int[5];
int nums[] new int[]{1,2,4,5};// 数组有一个属性可以获得数组的长度
nums.length 类型[] 名字 new 类型[长度];3.数组在计算机中的基本原理
数组在计算机中存储主要是通过三个步骤 注意数组变量名中存储的的是数组在内存当中的地址数组是一种引用数据类型。 总结 4.数组中的访问
语法数组名[索引]
System.out.println(ages[0]);
计算数组长度存放了多少数据 数组名.length
System.out.println(ages.length);
数组的最大索引
数组名.length - 1
注意如果访问数组时使用的索引超过数组的最大索引会越界显示异常
5.数组的遍历
什么是便历 所谓便历就是说一个一个去访问属猪容器中的数据
for (int i 0; i ages.length; i) { }
IDEA中的快捷便历
数组名.fori 回车 直接生成 一个简单的小案例 代码实现
public class LiteralDemo {public static void main(String[] args) {//定义一个五个员工的销售额度数组int[] money {16,26,366,100};//定义一个变量用作最后计算总额int total 0;//分别遍历累加for (int i 0; i money.length; i) {total money[i];}//输出System.out.println(total);}
}6.动态初试化数组
先初试化int[] rar new int[3] 后赋值 rar[0]1 两种数组定义初始化方式各自适合什么模式
动态初试化适合开始不确定具体元素值只知道元素个数的具体场景。静态初试化明确具体元素值
案例1:
代码实现
import java.util.Scanner;
public class LiteralDemo {public static void main(String[] args) {double[] scores new double[6];Scanner sc new Scanner(System.in)//遍历数组 输入6个评委的打分for (int i 0; i scores.length; i) {System.out.println(请您输入当前第(i1)个评委的分数);scores[i] sc.nextDouble();}double sum 0;// 遍历数组中每个元素值进行求和for (int i 0; i scores.length; i) {sum scores[i];}System.out.println(选手最终得分 (sum / scores.length));}7.数组/java程序在计算机中的执行原理
java内存分配介绍 #mermaid-svg-5UYmEtdDSKnqegJA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .error-icon{fill:#552222;}#mermaid-svg-5UYmEtdDSKnqegJA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5UYmEtdDSKnqegJA .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-5UYmEtdDSKnqegJA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5UYmEtdDSKnqegJA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5UYmEtdDSKnqegJA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5UYmEtdDSKnqegJA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5UYmEtdDSKnqegJA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5UYmEtdDSKnqegJA .marker.cross{stroke:#333333;}#mermaid-svg-5UYmEtdDSKnqegJA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5UYmEtdDSKnqegJA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .cluster-label text{fill:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .cluster-label span{color:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .label text,#mermaid-svg-5UYmEtdDSKnqegJA span{fill:#333;color:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .node rect,#mermaid-svg-5UYmEtdDSKnqegJA .node circle,#mermaid-svg-5UYmEtdDSKnqegJA .node ellipse,#mermaid-svg-5UYmEtdDSKnqegJA .node polygon,#mermaid-svg-5UYmEtdDSKnqegJA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5UYmEtdDSKnqegJA .node .label{text-align:center;}#mermaid-svg-5UYmEtdDSKnqegJA .node.clickable{cursor:pointer;}#mermaid-svg-5UYmEtdDSKnqegJA .arrowheadPath{fill:#333333;}#mermaid-svg-5UYmEtdDSKnqegJA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5UYmEtdDSKnqegJA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5UYmEtdDSKnqegJA .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-5UYmEtdDSKnqegJA .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-5UYmEtdDSKnqegJA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5UYmEtdDSKnqegJA .cluster text{fill:#333;}#mermaid-svg-5UYmEtdDSKnqegJA .cluster span{color:#333;}#mermaid-svg-5UYmEtdDSKnqegJA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5UYmEtdDSKnqegJA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 方法区 栈内存 堆内存 数组在计算机的执行原理 小思考 8.多个变量指向同一个数组 注意如果某个数组变量存储的地址是null,那么变量将不再指向任何数组对象。
多个数组变量指向同一个数组对象的原因注意事项
多个数组中存储的是同一个数组对象中的数据多个变量中修改的都是同一个数组对象中的数据。
9.数组常见案例
数组求最值 代码实现
public class LiteralDemo {public static void main(String[] args) {int[] faceScores {15,9000,29993,3242,4242,5242,4345,543,534,543,543};//定义一个最大值int max faceScores[0];for (int i 0; i faceScores.length; i) {if(faceScores[i] max) max faceScores[i];}System.out.println(当前妹纸中颜值得分最高的是 max 分);}
}数组反转 public class LiteralDemo {public static void main(String[] args) {int[] a {1,2,3,4,5}; //临时变量int temp;for (int i 0,j a.length-1; i j; i,j--) {temp a[i];a[i] a[j];a[j] temp;}for (int i 0; i a.length; i) {System.out.print(a[i] );}}
}随机排名 代码实现
import java.util.Random;
import java.util.Scanner;
public class LiteralDemo {public static void main(String[] args) {Scanner sc new Scanner(System.in);//初始化数组int[] codes new int[5];//遍历录入for (int i 0; i codes.length; i) {System.out.println(请您输入第 (i1) 个工号);int code sc.nextInt();codes[i] code;}Random r new Random();//打乱顺序for (int i 0; i codes.length; i) {//随机索引int index r.nextInt(codes.length);//0 1 2 3 4//定义临时变量int temp codes[index];codes[index] codes[i];codes[i] temp;}for (int i 0; i codes.length; i) {System.out.print(i );}}
}
debug工具的使用-断点调试 方法
1.方法的概念
方法是一种语法结构它可以把一段代码封装成一个功能以便于复用。
方法定义方式 public static int sum(int a,int b){int c ab;return c;}调用 sum(10,20) 使用方法的好处
提高代码复用性提升开发效率让程序逻辑更清晰
2.方法的设计 3.方法在计算机的执行原理
方法被调用的时候是进入到栈内存中运行。
栈先进后出类似于手枪弹夹先进去的后出后进、去先出。打出去就没了。 4.java参数的传递机制 非常重要
java的传递机制都是值传递
所谓值传递指的是传输实参给方法的形参的时候传递的是实参变量中存储值的副本。
实参在方法内部定义的量形参定义方法时中所声明的参数 总结
值传递传输的是实参存储的值副本
5.引用类型的参数传递 案例1 代码 案例2 代码 思维层层拦截不通过就返回false
6.方法重载
什么是方法重载
方法重载指一个类中出现多个方法名称相同但他们形参列表是不同的那么这些方法就成为方法重载了。
方法重载的的注意事项
一个类中只要一些方法的名称相同形参列表不同那么他们就是方法的重载了其它不用管。形参的列表不同指个数、类型、顺序不同不关心形参
方法重载的应用场景
开发中我们经常需要为处理一类业务提供多种解决方案