栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

自学java笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自学java笔记

jave预课 JDK安装及卸载 JDK安装
  1. [JDK8链接]Java Downloads | Oracle

  2. 注册并安装相应版本

  3. 记住安装路径

  4. 配置环境变量

    1. 我的电脑-属性-高级系统设置

    2. 环境变量-系统变量-添加变量名为JAVA_HOME 变量值为安装路径

    3. 双击Path,添加两个变量%JAVA_HOME%bin和%JAVA_HOME%jrebin

    4. win+R键打开dos命令窗口,输入cmd并打开

    5. 输入java -version,显示如下图则说明安装成功

JDK卸载
  1. 我的电脑-属性-高级系统设置-环境变量-系统变量-JAVA_HOME-变量值
  2. 删除变量值对应路径的文件
  3. 删除环境变量JAVA_HOME以及path内的java相关环境
  4. win+R键打开dos命令窗口,输入cmd并打开
  5. 输入java -version,显示 ‘java’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 则说明卸载成功
Hello Word
  1. 新建文件夹存放java代码

  2. 新建java文件

    1. 新建任意文件,文件名为Hello
    2. 修改后缀为.java
  3. 以notepad++方式打开

  4. 编写代码

    public class Hello{
    	public static void main(String[] arqs){
    		System.out.print("Hello,World!");
    	}
    }
    
  • 第一行类名”Hello“与文件名一致
  • 第三行末尾有分号
  • 注意大小写及中英文
  1. 保存并退出

  2. 在当前文件夹页面进入cmd

  3. 输入指令javac Hello.java并回车,生成一个class文件

  4. 输入指令java Hello并回车

    ​

Java运行机制
  • 编译型

  • 解释型

    ​

IDEA安装

[IDEA官网下载]IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains

  1. 汉化:
    1. 点击左上角fill
    2. 点击下方sett
    3. 点击Plugins**
    4. 点击上面的Marketplace
    5. 搜索Chinese
    6. 安装第二个
    7. 然后点击Restart IDE
    8. 重启后就是中文了
  2. 优化[]IDEA的优化配置_大撕码的博客-CSDN博客_idea优化
新建项目
  1. 单击新建项目

  2. 选择空项目

  3. 如图创建模块

  4. 如图修改项目结构

  5. 如图新建java文件

java基础语法 注释

书写注释是一个非常好的习惯

单行注释

//我是注释

多行注释

 

文档注释

 
标识符 
  • 关键字

  • 标识符:
    • 以字母、美元符$、下划线开头
    • 之后用字母、美元符$、下划线、数字
    • 不能使用关键字
    • 区分大小写
    • 可以以中文命名
public class name {
    public static void main(String[] args) {
        String id="21130124";//给“id”赋值“21130124”
      
        System.out.println(id);//输出“id”的值
    }
}
数据类型

java为强类型语言:先定义再使用

变量:变量类型 变量名 = 值;

基本类型
  1. 数值型

    1. 整型

      类型名所占字节范围
      byte1-128-127
      short2-32768-32767
      int4-2147483648-2147483647
      long8…
    2. 浮点型

      类型名所占字节
      float4
      double8
    3. 字符型 char 占2字节

  2. boolean类型:占1位,只有true和false

    public class demo03 {
        public static void main(String[] args) {
            //整形
            byte num1=1;
            short num2=100;
            int num3=1000;
            long num4=10000L;//末尾加L
            //浮点型(末尾要加f)
            float num5=10.1f;
            double num6=3.1415f;
            //字符
            char name = '胡';
            //字符串
            String NAME = "胡靖";
            //布尔值
            boolean flag = true;
            //boolean flag = false;
        }
    }
    

    ​

    ​

引用类型
  • 类
  • 接口
  • 数组
类型转化
强制转化(类型)变量名高->低
自动转化低->高

注意点

  • 不能对布尔值转化
  • 不能转化不相干的类型
  • 高容量到低容量要强制转化
  • 转化可能有内存溢出或精度问题
变量

数据类型 变量名 = 值;

命名规则:

  1. 见名知意
  2. 类成员变量、局部变量和方法名采用驼峰原则(除了第一个单词以为,后面的单词首字母大写)
  3. 常量用大写字母和下划线
  4. 类名首字母大写和驼峰原则
变量作用域
  • 实例变量:从属于对象;默认值为0 0.0 false或者null
  • 局部变量:必须声明和初始化
  • 类变量:static double salary = 5000.0;
public class demo04 {

    //类变量 static
    static double salary=5000.0;
    //实例变量:从属于对象;如果不初始化则为0
    String name;
    int age;
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i=1;
        System.out.println(i);
        //类型变量 变量名=new demo04
        demo04 demo04 = new demo04();
        System.out.println(demo04.age);
        System.out.println(demo04.name);
        //类变量 static
        System.out.println(salary);
    }
}
常量

初始化后不能改变的值

常量名一般使用大写字符

public class demo05 {
    static final int HIGH = 50;
    static final int LONG = 100;
    public static void main(String[] args) {
        System.out.println(HIGH);
        System.out.println(LONG);
    }
}

运算符

包机制

语法格式为

package pkg1[.pkg2[.pkg3...]];

一般以公司域名倒置作为包名;

建包:



导入包语句:

import com.hujing.www.Demo01;//导入包
import com.hujing.www.*;//导入这个包下所有类

导入包名不能重复

JaveDoc生成文档
  1. cmd窗口输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

  2. index.html文件

    ​

scann对象
  • 作用:获取用户输入。
  • 语法:
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next和nextline()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

  • 凡是属于IO流类不关闭会一直占用资源,要养成好习惯,用完就关掉

    scanner.close();//关闭scanner
    

    ​

next():不能得到带有空格的字符串,空格是结束符

Scanner scanner = new Scanner(System.in);
//创建一个扫描器对象,用于接收键盘数据
System.out.println("使用next方式接收:");
//输出字符串
String str = scanner.next();
//输入字符串
System.out.println("输出的内容为:"+str);
//输出字符串
scanner.close();
//关闭scanner

nextLine():可以获得空格,回车是结束符

		Scanner scanner = new Scanner(System.in);
        //创建一个扫描器对象,用于接收键盘数据
        System.out.println("使用next方式接收:");
        //输出字符串
        String str = scanner.nextLine();
        //输入字符串
        System.out.println("输出的内容为:"+str);
        //输出字符串
        scanner.close();
        //关闭scanner

此外还有如下输入语句:

scanner.nextInt();//输入整形
scanner.nextFloat();//输入实型

小例子1:

Scanner scanner = new Scanner(System.in);
        int i=0;
        float k=1;
        System.out.println("请输入一个数字:");
        if (scanner.hasNextInt())
        //判断输入的数字是否为整形
        {
            i = scanner.nextInt();
            //将输入的数字赋值给i
            System.out.println("您输入的是整数:" + i);
        }
        else if (scanner.hasNextFloat())
        //判断输入的数字是否为整形
        {
            k = scanner.nextFloat();
            //将输入的数字赋值给k
            System.out.println("您输入的是小数:" + k);
        }
        scanner.close();

小例子2:

Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一串数字");
        double sum=0;
        int n=0;
        while (scanner.hasNextDouble())
        //判断输入是否为数字
        {
            double x = scanner.nextDouble();
            sum+=x;
            //求和
            n++;
        }
        System.out.println("n个数的和为:"+sum);
        System.out.println("平均数为:"+(sum/n));
	    scanner.close();
三大结构 选择

Switch:同c

特性:case后可为字符串

循环

while:同c

do while:同c

for:同c

增强for循环:

int [] numbers = {10,20,30,40,50};
        for(int x:numbers)
        {
            System.out.println(x);
        }

同下:

int [] numbers = {10,20,30,40,50};
		for (int i=0;i<5;i++)
        {
            System.out.println(numbers[i]);
        }

break:同c

continue:同c

判断

if()else if():同c

方法

方法就是c语言中的函数

定义方法:

public static int add(int a,int b)
{
  return a+b;
}

调用方法:对象名.方法名

静态方法:

定义:static 类型

调用:对象名.方法名

和类一起出现

非静态方法:

定义:没有static

调用:

  1. 实例化:对象类 对象名 = 对象名

    Study study = new Study();
    
  2. 调用

    study.say();
    

实例化后才出现

值传递

实参向形参单向传递

引用传递

通过对象传递

    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);
        Demo02.change(person);
        System.out.println(person.name);
    }
    public static void change(Person person){
        person.name="胡靖";
    }
}
class Person{
    String name;
}
数组

增强for使用

int [] a1 = {1,2,3}
a1.for
二维数组

定义语法:

int [][] a=new int[11][11];
//定义一个11*11大小的数组

打印输出:

int [][] a1=new int[11][11];
        //定义一个11*11大小的数组
        a1[1][2]=1;
        a1[2][3]=1;
        for (int[] ints : a1) {
            for (int anInt : ints) {
                System.out.print(anInt+"t");
            }
            System.out.println();
        }
Arrays类
int a[] = {1,2,3,567,6454,654,2,43,53};
        int b[] = {1,1,1,1,1,1,1,1,1};
        int num=0;
        int serc=567;
        System.out.println(Arrays.toString(a));
        //打印数组元素:Arrays.toString(a)
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //将数组升序排序:Arrays.sort(a)
        if(Arrays.equals(a,b))
        {
            System.out.println("相等");
        }
        else
        {
            System.out.println("不相等");
        }
        //比较两个数组元素:Arrays.equals(a,b)
        num=Arrays.binarySearch(a,serc);
        System.out.println("第"+(num+1)+"个元素是"+serc);
        //对排序好的数组进行二分查找法
        Arrays.fill(a,1);
        System.out.println(Arrays.toString(a));
        //将数组填满数字1:Arrays.fill(a,1)
        Arrays.fill(a,2,4,3);
        System.out.println(Arrays.toString(a));
        //将数组从第二个到第四个元素(左闭右开区间)填满数字3:Arrays.fill(a,2,4,3)
稀疏数组
  • 当一个数组大部分元素为0或者同一数值使,可以使用稀疏数组保存该数组。

  • 处理方法:

    • 记录数组有几行几列,有多少不同值(有效值)
    • 把不同值的元素的行、列、值存放在一个小规模数组中

    代码:

int [][] a1=new int[11][11];
        //定义一个11*11大小的数组
        a1[1][2]=1;
        a1[2][3]=1;
        for (int[] ints : a1) {
            for (int anInt : ints) {
                System.out.print(anInt+"t");
            }
            System.out.println();
        }
        //原始数组
        int sum = 0;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 11; j++) {
                if (a1[i][j]!=0)
                {
                    sum++;
                }
            }
        }
        //获取有效值个数
        int[][] a2=new int[sum+1][3];
        //有效值个数为行数,其行、列、值为列
        a2[0][0]=11;
        //棋盘行数
        a2[0][1]=11;
        //棋盘列数
        a2[0][2]=sum;
        //棋盘有效值个数
        int count=0;
        for (int i = 0; i < a1.length; i++) {
            for (int j = 0; j < a1[i].length; j++) {

                if(a1[i][j]!=0)
                {
                    count++;
                    a2[count][0]=i;
                    a2[count][1]=j;
                    a2[count][2]=a1[i][j];
                }
            }
        }
        //构造稀疏数组
        for (int i = 0; i < a2.length; i++) {
            System.out.println(a2[i][0]+"t"+a2[i][1]+"t"+a2[i][2]+"t");
        }
        //打印稀疏数组

原理图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号