(day1)自学java基础
创始人
2024-05-05 00:15:39
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出来的,都是引用数据类型。在变量里存储的不是真实数据,而是地址值。

 

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

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...