(day1)自学java基础
创始人
2024-05-04 18:48:51
0

非原创,记录学习过程,为方便自己后期复习

目录

1.Java基础概念

2.运算符

 3.判断

 4.循环

5.循环高级

 6.数组

7.数组的内存图

8.方法


ctrl+alt+L 自动格式化代码

为什么要配置环境变量?

我们想在任意目录都可以打开指定软件,就可以把软件的路径配置到环境变量中。

打开环境变量:系统——》高级系统设置——》高级(环境变量)——》path(编辑)

 下载安装JDK:https://www.oracle.com

1.Java基础概念

1.helloworld小案例

javac编译后用java.exe运行

javac编译后会生成一个新文件

用java运行,不用带后缀

 

2.关键字、字面量、变量

3. 计算机的存储规则

 任意数据都是以二进制存储的

文本:数字(转二进制),字母(查询码表),汉字(查询码表)

图片:通过每一个像素点中的RGB三原色来存储

声音:对声音的波形图进行采样再存储

4.数据类型

数据类型相同,取值范围不同 。

如果要定义long类型的变量,在数值后面加一个L后缀(long m=99999999L)。

如果要定义float类型的变量,在数值后面加一个后F缀(float m=10.1F)。

 5.标识符

 标识符:就是给类、方法、变量等起的名字。

 

 6.键盘录入

Java中有个Scanner类,这个类可以接收从键盘输入的数字。

 练习:从键盘输入两个整数,并打印出两者之和。

7.IDEA

 

2.运算符

练习:从键盘输入三位数,获取其中百位、十位、个位。

  

1.隐式转换和强制转换

 2.自增自减运算符++,--

 

3.赋值运算符

 4.短路逻辑运算符

当左边表达式能确定最终结果,右边表达式就不会参与运行。

 

 5.三元运算符

 6.运算符优先级

小括号(),优先于所有。

7.原码反码补码

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。

原码的弊端:利用原码计算时,如果是整数就没问题,但如果是负数,结果会出错,实际运算方向与正确运算方向相反。

 3.判断

如果对布尔类型的变量进行判断,不要用==,直接将变量写到小括号里。

 

 

 

练习:

 

 

 

 

 4.循环

 

100.fori (快速生成100以内的for循环)

练习:100范围内的偶数和(包括100)

 

 

 练习:

 

 先执行后判断

5.循环高级

 练习:

 

 

练习:猜数字小游戏,随机生成1~100的数字,使用程序实现猜出这个数字是多少?

 

注:括号内的范围是0~99,所以+1,就是1~100

import java.util.Random;
import java.util.Scanner;public class GuessNumber {public static void main(String[] args) {Random r=new Random();int number= r.nextInt(100)+1;while (true) {System.out.println("请输入要猜的数字:33");Scanner sc=new Scanner(System.in);int guessunm= sc.nextInt();if (number > guessunm) {System.out.println("小了");} else if (number < guessunm) {System.out.println("大了");} else if (number == guessunm) {System.out.println("猜对了");break;}}}
}

 6.数组

 直接打印数组名,是不会出现数组中的值,而是数组的地址值。

1.获取数组元素:数组名[索引]

2.将数据存储到数组中:数组名[索引]=数据/变量  (之前的数据会被覆盖)

 数组的遍历:遍历是指取出数据的过程,而不只是简单的打印。

自动快速生成数组遍历:数组名.fori

练习:遍历数组并求和。定义一个数组,存储1,2,3,4,5,遍历得到每一个元素,并求所有元素之和。

public class ArrayText {public static void main(String[] args) {int[]array={1,2,3,4,5};int sum=0;for (int i = 0; i < array.length; i++) {System.out.println(array[i]);sum=sum+array[i];}System.out.println(sum);}
}

练习:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历得到每一个元素,统计里面有多少个能被3整除的数字。

public class ArrayText {public static void main(String[] args) {int[]array={1,2,3,4,5,6,7,8,9,10};int count=0;for (int i = 0; i < array.length; i++) {System.out.println(array[i]);if(array[i]%3==0){count++;}}System.out.println("能被3整除的数字有"+count+"个");}
}

练习:变化数据。定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历得到每一个元素,如果是奇数,则将当前数字扩大两倍,如果是偶数,就将数字变成二分之一。

public class ArrayText {public static void main(String[] args) {int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int count = 0;for (int i = 0; i < array.length; i++) {if (array[i] % 2 != 0) {array[i] = array[i] * 2;} else if (array[i] % 2 == 0) {array[i] = array[i] / 2;}}//遍历数组for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}
}

注:一个循环只做一件事情

 

练习:求最值。一直输组元素为[33,5,22,44,55] ,找出最大值并打印。

public class MaxNumber {public static void main(String[] args) {int[] arr = {33,5,22,44,55};int max=arr[0];
//max的初始化值一定是数组的值for (int i = 0; i < arr.length; i++) {if(arr[i]>max){max=arr[i];}}System.out.println(max);}
}

练习:生成10个1~100的随机数存入数组。1.求出所有数据和;2.求出平均值;3.统计有多少个数据小于平均值。

import java.util.Random;public class ArrTest {public static void main(String[] args) {int[]arr=new int[10];int sum=0;int count=0;for (int i = 0; i < 10; i++) {Random r=new Random();int num=r.nextInt(100)+1;arr[i]=num;}for (int i = 0; i < arr.length; i++) {sum=sum+arr[i];}System.out.println("所有数据和为:"+sum);int ave=sum/10;System.out.println("所有数据的平均值:"+ave);for (int i = 0; i < arr.length; i++) {if(arr[i]

练习:定义一个数组,存入1,2,3,4,5,按照要求调换索引对应元素。交换前1,2,3,4,5;交换后5,2,3,4,1。

public class ArrTest {public static void main(String[] args) {int[]arr={1,2,3,4,5};for (int i = 0; i < arr.length; i++) {int temp=arr[0];arr[0]=arr[4];arr[4]=temp;}for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}//1,2,3,4,5交换成5,4,3,2,1
public class ArrTest {public static void main(String[] args) {int[]arr={1,2,3,4,5};for (int i = 0,j= arr.length-1; i

练习:定义一个数组,存入1~5。要求打乱所有数据的顺序。

import java.util.Random;public class ArrTest {public static void main(String[] args) {int[]arr={1,2,3,4,5};Random r=new Random();for (int i = 0; i < arr.length; i++) {int randomnum=r.nextInt(arr.length);int temp=arr[i];arr[i]=arr[randomnum];arr[randomnum]=temp;}for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}

7.数组的内存图

栈:方法运行时使用的内存,比如main方法运行,进入方法栈中运行。

堆:存储对象或数组,new来创建的,都存储在堆内存。

 

8.方法

方法是程序中最小的执行单元。方法和方法是平级关系,不可嵌套。

1.最简单的方法定义, 调用方法:方法名();

2.带参数的方法,调用方法:method(数据,数据)

形参:方法定义中的参数

实参:方法调用中的参数

void就是没有返回值

3.带返回值的方法

return返回值给方法调用处 。return不带参数时,就是结束方法。

 

 方法的重载:

 在一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。每个方法具有不同的参数类型或参数个数,这些同名方法,就构成了重载关系。

同一个类中,方法名相同,参数不同的方法。与返回值无关。(参数不同:个数,类型,顺序)

注:调用时可以结合数据类型强制转换。

练习:设计一个方法,求数组的最大值,并将最大值返回。

public class ArrTest {public static void main(String[] args) {int[]arr={2,4,6,3,13,15};int max=getmax(arr);System.out.println(max);}public static int getmax(int[]arr) {int max=arr[0];for (int i = 0; i < arr.length; i++) {if(max

练习:定义一个方法copyOfRange(int[]arr,int from,int to),将数组arr中从索引from(包含from)开始,到索引to(不包括to)结束的元素复制到新数组中,将新数组返回。

public class ArrTest {public static void main(String[] args) {int[]arr={2,4,6,3,13,15,10,9};int[]copy=copyOfRange(arr,3,7); //调用,用一个数组接收数据for (int i = 0; i < copy.length; i++) { //遍历copy数组System.out.print(copy[i]+" "); //用print就不会换行,println会换行}}public static int[] copyOfRange(int[]arr,int from,int to) {int[]arrnew=new int[to-from]; //定义数组int index=0; //伪造索引for (int i = from; i < to; i++) {arrnew[index]=arr[i]; //把原数组arr的从from到to的数据,赋值给arrnewindex++;}return arrnew; //返回数组,数据类型要用int[]}
}

方法的基本内存原理:方法进栈,先进后出

什么是基本数据类型和引用数据类型?

 

 只要是new出来的,都是引用数据类型。在变量里存储的不是真实数据,而是地址值。

 

传递基本数据类型时,传递的是真实的数据,形参的改变,不改变实际参数的值

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...