8.8Java学习随笔


计算机硬件

CPU

Memory(内存)

Motherboard (主板)

IO

冯诺伊曼

1、配置环境变量:右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量"

1)在系统变量里新建"JAVA_HOME"变量,变量值为:C:\Program Files\Java\jdk1.8.0_60(根据自己的jdk的安装路径填写)

2)在系统变量里新建"classpath"变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)

3)找到path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

? 注意变量值之间用";"隔开。注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入。如果你的系统是Windows10,就相对方便多了,不用担心这个";"。

2、“Windows+R”-->输入“cmd”-->Enter,输入java -version(记得中间有个空格),如果显示jdk版本信息就说明环境变量配置成功了。

JDK目录结构介绍

  • /bin

Hello World 及 简单语法规则

public class Hello{
	
	public static void main(String[] args){
		
		System.out.print("hello.world!");
		
	}
}
javac Hello.java  #编译Java文件

java Hello        #运行Java 输出打印

NotePad++ 安装和使用

Java 基础语法

注释

 //  单行注释
/*
	多行注释
*/

/** 
	@name 

*/ 文档注释

标识符和关键字

image-20210808220745909

数据类型

强类型语言

要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用

整数类型

  • byte占一字节 (256)
  • short占2个字节 (65536)
  • int 占4个字节 (42亿)
  • long 8个字节 #long num = 30L

字节

B与bit

数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位 [4] 。

字(Word)

在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字。因此每个字都是可以寻址的。字的长度用位数来表示 [5] 。

字长

计算机的每个字所包含的位数称为字长,计算的字长是指它一次可处理的二进制数字的数目。一般地,大型计算机的字长为32-64位,小型计算机为12-32位,而微型计算机为4-16位。字长是衡量计算机性能的一个重要因素。

1字节(Byte)=8位(bit)  

? 1KB( Kilobyte,千字节)=1024B

? 1MB( Megabyte,兆字节)=1024KB

? 1GB( Gigabyte,吉字节,千兆)=1024MB

? 1TB( Trillionbyte,万亿字节,太字节)=1024GB

? 1PB( Petabyte,千万亿字节,拍字节)=1024TB

浮点类型

  • float 4个字节 #float num = 13.1F

  • double 8个字节 #

  • 银行使用bigdecimal类 表示钱

布尔值

  • Boolean

引用类型

  • 接口
  • 数组

Java

Math类

	double math = Math.pow(2,8); //2^8
    System.out.println(math);

逻辑运算符

int a1 = 4,a2 = 4;
        boolean b = (a1<5)&&(a1++)<3;
        System.out.println(b);
        System.out.println(a1);
//输出结果   false
//			5

System.out.println("----------------");
        boolean c = (a2<3)&&(a2++)<7;   //一假则假 ,&&后面就不会在执行运算了
        System.out.println(c);
        System.out.println(a2);
//输出结果   false
//			4

字符串拼接符 +

//字符串连接符号  +
        int x =10;
        int y =10;
        System.out.println(x+y);
        System.out.println("string"+x+y);  //前面有String类型的“+”为字符串拼接
        System.out.println(x+y+"string");  //先运算 在与String拼接

//输出结果   20
//			string1010
//			20string

三元运算符

//三元运算符
        /*
        *   x ? y : z
        *   如果x为true 则结果为 y 否则为z
        *
        * */
        int score = 80;
        String flag = score < 60 ? "不及格" : "及格";
        System.out.println(flag);

//输出结果   及格

Java基础 二

用户交互 sanner

image-20210810160936923

String str = null;
        String str1 = null;
        System.out.println("请输入:");
        Scanner scanner = new Scanner(System.in);
        /*if (scanner.hasNext()){     //只有一行 不能空格
            str = scanner.next();
            System.out.println("1\t"+str);
        }*/
        if (scanner.hasNextLine()){   //输入多行
            str1 = scanner.nextLine();
            System.out.println("2\t"+str1);
        }
        System.out.println("3 \t"+str + str1);

        scanner.close();

//输入多个数字 并且累加 最后求出平均值

//输入多个数字 并且累加 最后求出平均值
double sum = 0; //总和
int m = 0;   //数字个数
Scanner scanner = new Scanner(System.in);

//通过循环判断是否还有数字输入
while (scanner.hasNextDouble()){
    double x = scanner.nextDouble();
    sum += x;
    m++;
    System.out.println("输入的第"+m+"数为:"+x+"总和是:"+sum);
}

System.out.println(m+"个数的和为:"+sum+"\n"+m+"个数的平均值为:"+(sum/m));


scanner.close();

顺序结构

程序自上而下的执行

选择结构

if单选择结构

Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.equals("hello")){
    System.out.println(s);
}
System.out.println("end");
scanner.close();

if双选择结构

if (s.equals("hello")){
    System.out.println(s);
}else System.out.println("end");

if多选择结构

if (s.equals("hello")){
    System.out.println(s);
}else if(){
    System.out.println("end");
}else if(){
    
}.......

if嵌套

if(){
    if(){
        if(){
            
        }
    }
    
}

switch选择

循环结构

//1-100的奇数和 偶数和

double sum1 = 0;
double sum2 = 0;
for (int i = 0; i <= 100; i++) {
    if (i % 2 == 0)
        sum1+=i;
    else if (i % 2 != 0)
        sum2+=i;
}
System.out.println("1到100偶数和:"+sum1);
System.out.println("1到100奇数和:"+sum2);
// 1-1000 输出能被5整除的数 每行三个

    public static void main(String[] args) {

        for (int i = 1; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
                if (i%(5*3)==0)
                    System.out.println();
            }
        }
    }
}
//九九乘法表

int result = 0;
for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                result = i*j;
                System.out.print(i+"*"+j+"="+result+"\t");
            }
            System.out.println();

}

break & continue

练习

递归

public static void main(String[] args) {

    System.out.println(fou(5));
}

public static int fou(int i){
    if (i==1)
        return 1;
    else
        return i*fou(i-1);

}

冒泡排序

public class ArrayDemo {
    public static void main(String[] args) {
        int[] array = {6, 5, 6, 8, 2, 45, 78, 34};

        int[] a = sort(array);

        System.out.println(Arrays.toString(a));
    }

    public static int[] sort(int[] array) {

        int temp = 0;
        boolean flag = false;
        //外层判断 共循环多少次
        for (int i = 0; i < array.length -1 ; i++) {
            //内层循环 ,比较两个数 比较两个数的大小
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] > array[j + 1]){
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    flag = true;
                }
            }
            if (!flag){
                break;
            }
        }
        return array;
    }

相关