欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

01Java语法基础(自学时的笔记)

时间:2023-07-10

一丶数据类型


变量命名:数字开头不行、%不行、空格不行

1字节8位
int:4字节   byte:1字节  short:2字节  long:8字节  
(浮点数) float:4字节 double:8字节
final 常量(一般变量名大写好区分)

浮点数默认类型为double
      float num = 5.6f;

t  空格
n 换行

二丶运算符


个位:n%10
十位:n/10%10
百位:n/100%10

(?:)条件运算符

int x = 8;
int y = 9;
System.out.println((++x!=y)&&(++x==y));
System.out.println(x);

输出结果:false 9


int x = 8;
int y = 9;
System.out.println((++x!=y)||(++x==y));
System.out.println(x);

输出结果:false 10

三丶JAVA基础


JDK java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,
是提供给程序员使用的。(包含类库)(开发程序通过javac编译为字节码文件)
JRE java运行时环境,包含了java虚拟机,java基础类库。(比JDK少编译器,调试器等工具)
(运行字节码文件)
JVM java虚拟机(堆、栈)(解析字节码文件,映射到操作系统平台上)

JDK包含JRE,JRE包含JVM

如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。

编译:java文件 -> class文件
反编译工具:jad(cmd指令:jad -s java -8 文件名.class)(-8 解决中文乱码)
       FrontEndPlus

四丶选择结构


流程控制:控制程序中各语句的执行顺序
流程图:圆角矩形(程序开始结束)
             直角矩形(计算步骤/处理符号)
             平行四边形(输入/输出指令)
             菱形(判断和分支)
             圆形+箭头(连接符)
             上下箭头(流程线,程序方向)

Math.random()  (0-1的浮点数)
int random = (int)(Math.random()*10);  (0-9的整数)

五丶循环结构


switch与多重if
相同点:都是用来处理多分支条件的结构
不同点:switch选择结构只能处理等值条件判断的情况

continue:跳过循环体中剩余的语句而执行下一次循环

break与continue:
使用场合:
break常用于switch结构和循环结构
continue一般用于循环结构

return:结束当前方法的执行并退出,返回到调用该方法的语句处

增强型for/foreach:
for(int score:scores){     (迭代)
    sum+=score;
}

六丶数组


声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一块连续的空间

数组是一个变量,存储相同数据类型的一组数据

数组基本要素:
标识符  数组元素  元素下标  元素类型  长度(固定不变)(声明数组时不规定)

声明数组  int[] a;
分配空间  a = new int[5];
赋值         a[0] = 8;
处理数据   a[0] = a[0] * 10;

计算机内存:
jvm虚拟机空间内存(栈、堆(人为取名))
栈:数组变量(数组名)
堆:数组值/对象
通过栈内存找到堆内存里的值

变量 int i=5; 都放在栈里

七丶冒泡排序


冒泡排序:
每次比较相邻俩数
小的交换到前面
每轮结束后最大的数交换到最后

num
for(int i=0;i     for(int j=0;j<=num.length-i-1;j++){
        if(num[j]>num[j+1]){
            int temp = num[j];
            num[j] = num[j+1];
            num[j+1] = temp;
        }
    }
}

n个数字来排队
俩俩相比小靠前
外层循环n-1
内层循环n-i-1

共比较 n*(n-1)/2 次

八丶二维数组


类(class)  ( java.util.Array :java.util包提供的工具类 )
包:放一堆的类(util:jdk提供包)

Arrays.sort(数组名);  升序排列
         .equals(数组名,数组名)  比较是否相等
         .toString(数组名)  转换成字符串
         .fill(数组名,val)   所有元素赋值为val
         .copyOf(数组名,length)    复制成一个长度为length的新数组,返回值类型与复制数组一致(int类型填充0)
         .binarySearch(数组名,val)    查询元素值val在数组中的下标(要求数组已经按升序排列)(找不到返回随机负数)


三维及以上数组很少使用
主要使用二维数组
从语法上java支持多维数组
从内存分配原理的角度讲,只有一维数组

<数据类型>[][]数组名;
<数据类型>数组名[][];

int[][] scores = new int[][]{{90,85,95,95,41},{98,85},{100}}   [0][5],[1][2],[3][1]

定义二维数组时,要定义最大维数
二维数组实际上是一个一维数组,它的每个元素又是一个一维数组

九丶选择排序


选择排序:
下标为i的元素一次和之后的所有元素比较,找到本轮最小(大)的元素
将最小元素与下标为i的元素交换

比冒泡排序交换次数少,但比较次数不变

int[] arr = {....};
int min=-1;  //最小值下标

for(int i = 0; i < arr.length-1;i++){
    min = i;
    for(int j = i + 1;j < arr.length;j++){
        if(arr[min]>arr[j]){
            min = j;
        }
    }
    if(min != i){
        int temp = arr[min];
        arr[min] = arr[i];
        arr[i] = temp;
    }
}

十丶二分(折半)查找法


定义数组(有序)
将要查找的元素和数组中间的元素比较,如果没找到则继续折半

int[] arr={.....};
int searchNum = 4;  //要查找的数字
int startIndex = 0;  //定义开始查找范围的下标
int endIndex = arr.length-1; //定义结束查找范围的下标
int midIndex = -1  //定义中间位置的下标
boolean inFind = false;

do{
    midIndex = (startIndex + endIndex)/2;
    if(arr[minIndex] == searchNum){
        System.out.print(“找到了!”);
        inFind = true;
        break;
    }else if(arr[minIndex] > searchNum){
        endIndex = midIndex - 1;
    }else if(arr[minIndex] < searchNum){
        startIndex = midIndex + 1;
    }
}while(startIndex <= endIndex){
    if(!inFind){
        System.out.print(“抱歉,没找到!”);    
    }
}

十一丶程序基础


1.程序基本概念

类名:首字母大写,其后每个单词首字母要大写 MyDemo(帕斯卡命名规则)
变量名:首字母小写,其后每个单词首字母要大写 myScore(驼峰命名规则)
变量(本质:内存空间的表示)

数据类型:
基本数据类型: int   float    double   char
引用数据类型: String      数组   
能.出来东西一般都是引用数据类型(数组.length())
变量名=值;

运算符:
赋值运算符
算术运算符(++  --  /  %)
比较运算符(==)
逻辑运算符(&&  ||  !)
条件运算符(?:)

2.流程控制


顺序结构
选择结构(分支)
    if   if-else   if-else  if-else if-else   switch
循环结构
    常见的循环
    for   while   do-while

    双重循环

    跳转语句
        break    continue    return

数组+循环
    数组使用步骤
        int[] nums = new int[]{};
    数组几个要素:
        数组长度(length)
        数组元素
        数组下标(从0开始)
        数组类型
    数组常见异常
        ArrayIndexOutofBoundsException:下标越界
    数组和循环结合使用
        (1)for
        (2)增强型for
    二维数数组
    

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。