资讯详情

Java基础学习笔记

什么是计算机?

  1. 广泛应用于科学计算、数据处理、自动控制、计算机辅助设计、人工智能、网络领域
  2. 由硬件和软件组成

二、计算机硬件

计算机硬件的组成:、内存,主板,IO设备、显卡

三、冯诺依曼体系结构

  • 冯诺依曼
  • 图灵

image-20210213201016140

四、计算机软件

1. 系统软件:DOS、Linux、Windows、Android、iOS

2. 应用软件:WPS、QQ、微信、英雄联盟、绝地求生

五、计算机语言发展史

更易、更强

第一代语言

  • 机器语言

第二代语言

  • 汇编语言
    • 指令取代二进制
    • 解决人类无法理解机器语言的问题
  • 目前应用
    • 逆向工程
    • 机器人
    • 病毒

第三代语言

  • 摩尔定律
  • 当价格保持不变时,集成电路上可容纳的晶体管数量将每18个月翻一番,性能也将翻一番。换句话说,每美元购买的计算机性能将每18个月翻一番以上
  • 高级语言
  • 一般可分为,两个大类
  • C语言是面向过程的典型语言。Java、C 面向对象的语言是典型的
  • 各种编程语言
    • :高级语言的鼻祖
    • C 语言
    • Java语言:服务器开发
    • C#语言
    • Python
    • PHP

六、初识Java

Java帝国的诞生

C & C

  • C语言于1972年诞生
    • 靠近硬件,运行快,销量高
    • 操作系统、编译器、数据库、网络系统
    • 指针和内存管理
  • 1982年C 诞生
    • 面向对象
    • 兼容C
    • 图形领域、游戏等

Java出生

  • Java 2 标准版(J2SE):去占领桌面
  • Java 2 移动版(J2ME):去占领手机
  • Java 2 企业版(J2EE):占用服务器

Java发展

  • 他们基于Java开发了大量的平台系统和工具
    • 构建工具:Ant,、Jekins
    • 应用服务器:Tomcat,Jetty,Jboos,Websphere,weblogic
    • Web开发:Struts,Sprig,myBatis
    • 开发工具:Eclipse,IDEA
  • 2006年:Hadoop(大数据领域)
  • 2008年:Android(手机端)

java特性和优势

  • 简单性
  • 面向对象
  • 可移植性
  • 高性能
  • 分布式
  • 动态:反射机制
  • 多线程:交互性和实时性
  • 安全性
  • 健壮性

七、Java的三大版本

  • JavaSE 标准版:桌面程序
  • JavaME 嵌入式开发:手机、小家电
  • JavaEE 企业版:服务器,web端

八、JDK、JRE、JVM

  • JDK:Java Development Kit Java包括开发人员工具JRE和JVM
  • JRE:Java Runtime Environment Java包括运行环境JVM
  • JVM:Java Virtual Machine Java虚拟机

JDK、JRE、JVM的详细介绍

九、Java建设开发环境

  • JDK下载与安装
  • 配置环境变量
  • JDK目录介绍
  • Helloworld简单的语法规则
  • Notepad 安转和使用

JDK环境变量的安装和配置

十、java程序运行机制

  • 编译:开发C或C或C等操作系统C
  • 解释:在执行网页和服务器时,解释对速度的要求不高

理解:美国人如果看中国人写的书,第一种方式,可以翻译成一个英文版,第二种方式,可以找一个翻译官,一遍翻译一遍看。编译型相当于第一种方式,就是把这一本书直接翻译成英文,他会有一个负责翻译的程序,负责翻译的程序叫做编译器;解释型相当于第二种方式。

  • 程序运行机制

十一、IDEA的安装

idea的安转步骤

什么是IDE?

IDEA就是一种IDE,被誉为最好的Java开发工具之一。

十二、Java基础语法

  1. 注释、标识符、关键字
  2. 数据类型
  3. 类型转换
  4. 变量、常量
  5. 运算符
  6. 包机制、JavaDoc

1、注释

  • Java有三种注释:

    • 单行注释://///
    • 多行注释:
    • 文档注释:
    public class HelloWorld { 
                   public static void main(String[] args) { 
                       ///单行注释:只能注释行文字
            //输出一个hello
            System.out.println("hello");
            /* 多行注释 我是多行注释,可以注释一段文字 */
            /** * 文档注释,可以添加一些东西 * @Author 晁永政 */
        }
    }
    
    

2、标识符

  • 关键字

关键字详细介绍

  • Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

标识符的注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始,
  • 首字母之后可以是字母(A-Z或者a-z),美元符($)、或者下划线(_)或者任何字符组合
  • 标识符是
String 王者荣耀="百星王者";//没有错,这样写是正确的

3、数据类型

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
    • 基本类型
    • 引用类型:除了八大基本类型之外都是引用类型,如类、接口、数组

Java的八大数据类型

 //整数扩展: 进制 二进制0b 十进制 八进制0 十六进制 0x 0~9 A~F
        int i = 10;//十进制 1*10的一次方+0*10的0次方
        int i2 = 010;//八进制 1*8的一次方+0*8的0次方
        int i3 = 0x10;//十六进制 1*16的一次方+0*16的0次方
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("================================================");
        //浮点数扩展 银行业务怎么表示?不能用float比较
        // BigDecimal 数学工具类
        //float 有限 离散 舍入误差 大约 接近但不等于
        //double
        //最好不使用浮点数进行比较
        float f = 0.1f;//flout类型
        double d = 1.0/10;//double类型
        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);//false
        float d1=231121316f;
        float d2 = d1+1;
        System.out.println(d1==d2);//true

输出结果:

4、什么是字节

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
  • 1B(byte,字节)=8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号。

字节的介绍

5、类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候需要用到类型转换
    • byte,short,char—> int —>long —> float —>double(由低到高)
  • 运算中,不同类型的数据先转换位同一类型,然后进行运算
  • 强制类型转换:(类型) 变量名 高到底
  • 自动类型转换:低到高
public class Demo05 { 
        
    public static void main(String[] args) { 
        
        int i = 128;
        byte b = (byte)i;//因为byte最大位127,所以下面会出现内存溢出
        System.out.println(i);
        System.out.println(b);
        double d = i;//自动转换
        System.out.println(d);
        System.out.println((int)23.7);
        System.out.println((int)-45.1);
        /** * 注意点: * 1.不能对布尔类型进行转换 * 2.不能把对象类型转换为不相干的类型 如把一个人转换成一头猪,但可以把一个男人转换成一个女人因为他们都是人 * 3.在高容量转换为低容量的时候 * 4.转换的时候可能存在内存溢出或者精度问题 */
    }
}

运行结果:

public class Demo06 { 
        
    public static void main(String[] args) { 
        
        //操作比较大的数的时候注意溢出
        //JDK7的新特性,数字之间可以用下划线进行分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;//计算的时候已经溢出了
        System.out.println(total);
        long total2 = money*years;//默认是int,因为money*years这个就是int类型,在这里就已经溢出了,在转换就是转换的溢出之后的结果
        System.out.println(total2);
        long total3 = money*(long)years;//先把一个数据转换为long类型
        System.out.println(total3);

    }
}

运行结果:

6、变量

  • 变量是什么:变量就是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和
  • 注意事项
    • 每个变量都有类型,类型可以是基本类型,也可是引用类型
    • 变量名必须都是合法的标识符
    • 变量声明必须是一条完整的语句,因此每个声明都必须以分号结束

7、变量的作用域:

  • 类变量

  • 实例变量

  • 局部变量

    public class Demo07 { 
              
        //属性:变量
        //实例变量:从属于对象;通过类来调用,不用进行初始化,会变成该类型的默认值,除了八大基本类型其他的
        //默认值都是null
        String name;
        int age;
        //类变量
        static int salary = 25000;
        //main方法
        public static void main(String[] args) { 
              
            //局部变量;必须声明和初始化值,只在这个方法体中有效
            int i = 1;
            System.out.println(i);
            Demo07 demo07= new Demo07();
            demo07.name="cyz";
            System.out.println("name="+demo07.name+"\n"+"age="+demo07.age);
            System.out.println(salary);
    
        }
        //其他方法
        public void add(){ 
              
    
        }
    }
    
    

8、常量

  • 常量:初始化后就不能在改变值!不会变动的值。

  • 所谓的常量可以理解成一种特殊的变量,它的值被设定后,在程序运行的过程中不允许被改变

    public class Demo09 { 
              
        //下面两条语句的输出结果相同
        //static final是修饰符,和位置无关
        static final double PI =3.14;
    // final static double PI =3.14
        public static void main(String[] args) { 
              
            System.out.println(PI);
        }
    }
    
    
  • 常量一般用大写字符

9、变量的命名规范

  • 所有的变量、方法和类名:见名知意
  • 类成员变量:首字母小写和驼峰原则,除了第一个单词外其他的首字母大写
    • 例:monthSalary、lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母觉下划线
    • 例:PI_MAX
  • 类名首字母代谢和驼峰原则
  • 方法名:首字母小写和驼峰原则
    • 例:run()

10、运算符

  • Java支持如下运算符

    • 算数运算符:+、-、*、/、%(取余或者模运算)、++、–

      long a =23421125152l;
              int b = 132;
              short c = 10;
              byte d =8;
              System.out.println(a+b+c+d);//long
              System.out.println(b+c+d);//int
              System.out.println(c+d);//int
              /** * 有long的操作为long其余的都是int */
      //++ -- 自增,自减
              int a =3;
              System.out.println(a);
              int b =a++;//a++ a=a+1 a++是在执行完这行代码之后才执行+1,即给b赋值之后才执行+1
      
              System.out.println(b);
              int c =++a;//a++ a=a+1 ++a是在执行完这行代码之前就执行+1,即给c赋值之前才执行+1
              System.out.println(c);
      	    //幂运算 2^3 2*2*2=8 很多运算我们会使用工具类来计算
              double pow =Math.pow(2,3);
              System.out.println(pow);	
      
    • 赋值运算符:=

    • 关系运算符:>、<、>=、<=、、instanceof

      • 关系运算符返回的结果:正确(true)或者错误(false)返回的是布尔值
    • 逻辑运算符:&&(与)、||(或)、!(非)

      //与(and) 或(or) 非(取反)
              boolean a = true;
              boolean b =false;
              System.out.println("a&&b===="+(a&&b));//逻辑与运算,两变量都为真,结果才为真
              System.out.println("a||b===="+(a||b));//逻辑或运算,有一个为真,结果就为真
              System.out.println("!(a&&b)===="+!(a&&b));//逻辑非运算,如果为真,则变为假,如果为真就变为假
              //短路运算
              int c = 5;
              boolean d =(c<4)&&(c++<4);//因为c<4为假,所以直接返回假,而不会执行c++<4这个操作,所以c也不会自增
              System.out.println(d);
              System.out.println(c);//c依然为4,因为上一步发生短路,并没有执行c++这个操作
      
      
    • 位运算符:&、|、^、~、>>、<<、<<<(了解)

    /**位运算 * A = 0011 1100 * B = 0000 1101 * A&B = 0011 1101 * A|B = 0000 1100 * A^B = 0011 0001 * ~B = 1111 1110 * 28 = 16 2222 * << 左移 相当于*2 * >> 右移 相当于/2 * 0000 0000 0 * 0000 0001 1 * 0000 0010 2 * 0000 0100 4 * 0000 1000 8 * 0001 0000 16 * 效率极高 */ System.out.println(2<<3);//结果为16

    
    
    
    - 条件运算符:?、:
    
    ~~~java
    //+:字符串连接符
            //只要有一方为字符串结果就位字符串
            int a =10;
            int b =20;
            System.out.println("string"+a+b);//结果为string1020
            System.out.println(a+b+"string");//结果为30string
            //以上两个输出的都是String类型的
     		/**
             * 三元运行符
             * x ? y : z
             * 如果x为真结果为y,如果x结果假,结果为z
             * 必须掌握
             */
            System.out.println(80<60?"不及格":"及格");//输出及格
    
    • 扩展赋值运算符:+=、-=、*=、/=

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cbKzG5Zs-1644305038014)(C:/Users/晁永政/AppData/Roaming/Typora/typora-user-images/image-20210416214752927.png)]

11、包机制

  • 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间

  • 包机制的语法格式为

    package pkg1[.pkg2...]
    
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句可以完成此功能

    import packge1[.packge2...].(classname|*);//*代表通配符,导包中的所有的类
    

12、JavaDoc

  • javadoc命令是用来生成自己的API文档的

  • 参数信息

    • @autor 作者名

    • @version 版本号

    • @since 致命指明需要最早的JDK版本

    • @param 参数名

    • return 返回值情况

    • throws 异常抛出情况

十三、java流程控制

1、用户交互Scanner

通过Scanner类来获取用户的输入

基本语法:

Scanner s = new Scanner(System.in)
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据
package com.wwm.Scanner;

import java.util.Scanner;

public class Demo01 { 
        
    public static void main(String[] args) { 
        

        //创建一个扫描对象,System.in用于接收数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方法接收:");

        //判断用户有没有输入字符串
        if (scanner.hasNext()){ 
        
            //使用next方法接收
            String str = scanner.next();  //程序会等待用户输入
            System.out.println("输入的内容为:"+str);
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
        //IO流即输入输出流
        scanner.close();
    }
}
/* 输入 hello world 输出 hello */

package com.wwm.Scanner;

import java.util.Scanner;

public class Demo02 { 
        
    public static void main(String[] args) { 
        
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用nextLine方法接收:");

        if(scanner.hasNextLine()){ 
        
            String str  = scanner.nextLine();
            System.out.println("输出的内容为:"+str);
        }

        scanner.close();
    }
}
/* 输入 hello world 输出 hello world */

next(): 一定要读取得到有效字符后才可以结束输入 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符 ==next()==不能得到带有空格的字符串 nextLine(): ,也就是说nextLine()方法返回的是输入回车键之前的所有字符 可以获得空白

package com.wwm.Scanner;

import java.util.Scanner;

public class Demo03 { 
        
    public static void main(String[] args) { 
        
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入数据:");

        String str = scanner.nextLine();

        System.out.println("输入的内容为:"+str);

        scanner.close();
    }
}
/* 输入:欢迎学习狂神说java 欢迎大家来到线下学习 输出:欢迎学习狂神说java 欢迎大家来到线下学习 */
package com.wwm.Scanner;

import java.util.Scanner;

public class Demo04 { 
        
    public static void main(String[] args) { 
        
        Scanner scanner = new Scanner(System.in);

        //从键盘接收数据
        int i = 0;
        float f = 0.0f;

        System.out.println("请输入整数:");
         //如果。。。那么。。。。
        if (scanner.hasNextInt()){ 
        
            i = scanner.nextInt();
            System.out.println("整数数据:"+ i );
        }else{ 
        
            System.out.println("输入的不是整数数据!");
        }

        System.out.println("请输入小数:");

        if (scanner.hasNextFloat()){ 
        
            f = scanner.nextFloat();
            System.out.println("小数数据:"+f);
        }else{ 
        
            System.out.println("输入的不是小数数据!");
        }

        scanner.close();
    }
}

package com.wwm.Scanner;

import java.util.Scanner;

public class Demo05 { 
        
    public static void main(String[] args) { 
        
        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

        Scanner scanner = new Scanner(System.in);

        //和
        double sum = 0;
        //计算输入了多少数字
        int m = 0;

        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while(scanner.hasNextDouble
        标签: 0aa33晶体管模块0aa31晶体管模块

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台