IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Java:Mac+VScode自学笔记|基础部分(一) -> 正文阅读

[开发工具]Java:Mac+VScode自学笔记|基础部分(一)

介绍:入门的语言是vb,py和js,云借购的时候发现沐言科技的书排版很不错,看着比较顺眼,就买了py、C和Java的,记录一些学习的笔记

参考:《Java从入门到项目实战》沐言科技 李兴华;浙大的MOOC

目录

1.下载JDK,配置环境变量。

2.JShell交互式编程

?3.第一个程序

4.设定class path 环境属性

5.Java注释

6.Java数据类型

7.运算符

8.进制转换

?9.if??switch 分支结构

10.循环结构

?11.方法


1.下载JDK,配置环境变量。

JDK根目录(Mac系统):资源库/Java/JavaVitrualMachines/jdk——.jdk/Contents/Home

  • bin目录:存放用于JDK开发的一些终端命令工具,如:
    • “javac”:将java源文件编译为class文件(即自解码文件);
    • “java”:运行class文件。
  • db目录:包含一个java开发的开源的关系型数据库;
  • include目录:包含一些C语言的头文件;
  • jre目录:JDK所依赖的java运行时;
  • lib目录:存放JDK开发工具所依赖的一些库文件;
  • man目录:存放JDK开发工具的说明文档。
  • 环境变量配置参考:MAC安装JDK及环境变量配置_GeekTech-CSDN博客_mac配置java环境变量

输入”java -version”,如果看到jdk版本为1.8则说明配置已经生效

2.JShell交互式编程

打开jshell:终端输入"jshell",即可启动

通过jshell运行本地程序:"/open+路径"

输入"/exit",退出jshell模式

?3.第一个程序

VScode配置Java参考:来源(知乎-那天)

主要是安装「Java Extension Pack」,新建一个.java项目:

pubic class Hello{ //程序所在类
    public static void main(String[]args){ //程序主方法
        System.out.println("输出追加换行");//系统输出

    }
}

?命名为Hello.java(必须与class类名一致)

编译java:终端输入javac,拖入Hello.java,回车

? ? 运行成功,同一目录会出现.class文件

切换到.java的上一级目录:cd 路径

解释程序:输入java Hello

?其他Mac的终端操作:python 学习日记之mac 终端切换路径、目录以及打开py文件_Gavin12334的博客-CSDN博客_python终端切换目录

  • pwd(print working directory):显示当前目录的绝对路径,
  • cd(change directory):转换目录
    • cd(不加参数)? ? ? ? ? 进入默认目录 "/Users/用户名"
    • cd(文件夹路径)? ? ? 进入指定的目录
    • cd ..? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回上级目录
    • cd -? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回上一个访问的目录
  • ls(list directory contents):查看当前目录下的文件
  • open 路径/.文件名:打开文件

4.设定class path 环境属性

终端:

  • SET CLASSPATH = 路径
  • SET CALSSPATH = . (当前目录)

全局环境属性:设定"CLASS PATH"为"."并保存。

5.Java注释

参考:Java 多行注释和javadoc文档注释_笨鸟先fly的博客-CSDN博客_java多行注释和文档注释

最常用://单行注释 cmd+/

// 单行注释 cmd+/

/*
多行注释,不允许嵌套多行注释
?*/

/**
?*
文档注释
?*@author [-1][2]
?*/

文档注释的生成:

  • javadoc -d 文件夹名 -xx -yy Hello.java

    (xx,yy 表示javadoc 标签)

  • 举例: javadoc -d comment -author -version Hello.java

在 文件夹 下就可以查看 生成的文档注释——index.html

注意:如果网页显示乱码,修改编码方式,加上:-encoding UTF-8 -charset UTF-8

举例:javadoc -d comment1 -encoding UTF-8 -charset UTF-8 -author -version Hello.java

6.Java数据类型

【基本数据类型】

  • 数值
    • 整数—(byte,int,short,long)
    • 浮点数-(float,double)
  • 字符(char)
  • 布尔型(boolean)

【引用数据类型】

  • (class)
  • 接口(interface)
  • 数组

不同类型变量的定义方法:

public class Hello{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int x = 10;          //整数int
        double y = 10.2;     //浮点float
        double result = x+y; //可以写表达式
        char name = 'A';     //字符char
        boolean flag = true; //布尔boolean
        String str = "字符串";//字符串String
        var variable = "动态定义";//var动态,兼容性不高
        System.out.println(result);//系统输出
        System.out.println(name);
        System.out.println(flag);
        System.out.println(str);
        System.out.println(variable);

        boolean flag = false; //布尔boolean
        if(flag){
            System.out.println(flag);
        }

    }
}

不同变量使用注意的要点

int 整型

【溢出】采用long变量

long max = 2147483647; //定义long型

System.out.print(max+1L); //转换为long型

System.out.print((long)max+1);//转换为l变量

【int结果无法保存小数】

夹带一个私货就行

System.out.print((double)?x / y );//转换为浮点

System.out.print(x /?(double)?y); //转换为浮点

byte 字节

强制类型转换】byte∈(-128,127)

范围以内 → int自动转换为byte

范围之外 → 必须强制转换,否则数据溢出

byte num = 20;

byte num = (byte) 200;

float 浮点

float x =?(float) 10.1;

float y?=?10.1?F;

char 字符

【Unicode与ASCII的相同部分】

? ? ? ? 65 ('A') ~ 90?('Z')

????????97 ('a') ~ 122?('z') (加32变小写

????????48 ('0') ~ 57?('9')

【char转int】(char) num;

【char保存中文】只能保存一个字。

boolean 布尔型🆘 Java不支持0,1来表示布尔。
String 字符串

【字符串定义】String str = "字符串";

【字符串连接】+

【混合运算】可能会转为数字,注意使用“括号”改变运算优先级,也不要用太复杂的表达式。

【转义符】

? ? ? ? 换行(\n

? ? ? ? 制表符(\t

? ? ? ? 反斜杠(\\

? ? ? ? 双引号(\"

? ? ? ? 单引号(\'

var 动态var可以定义任意类型变量,但Java的动态变量定义并不如JS、Py等语言强大,本书不建议使用var定义变量。

7.运算符

算数运算符
+-*/%=?:
取余数赋值三目运算符
关系运算符
><>=<===!=
大于小于大于等于小于等于等于不等于
逻辑运算符
&&&|||()

短路与

短路或括号
位运算符
&|^~<<>>>
按位与

按位或

异或

(同0异1)

取反

左移位

(>>右移)

无符号

右移位

简化赋值、自增减运算符
+=-=*=/=%=++--
自增1自减1

?:三目运算符】

类型 变量名 = 关系判断 ? 值true:值false

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int x = 10;          //整数int
        int y = 20;          
        int max = x > y ? x : y; //逻辑条件? 值true:值false
        System.out.println(max);

    }
}

?【&&&短路与的区别】(短路或||同理)

  • 与(&):对所有条件进行判断
  • 短路与(&&):如果前面的判断条件返回了false,直接终止,返回false
  • 短路或(II):如果前面的判断条件返回了true,直接终止,返回true

8.进制转换

参考:进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细_DJL0718的博客-CSDN博客_进制转化表

位运算符的结果
B1B2与&或|异或^
100000
201011
310011
411110

【异或^0同1异

【位与& 位或| 操作】

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int x = 13;          
        int y = 7;          
        System.out.println(x & y); //位与计算
        System.out.println(x | y); //位或计算

    }
}

计算分析
13的二进制:00000000000000000000000000001101
7的二进制:00000000 00000000 00000000 00000111
&”结果:0000000000000000 00000000 00000101? ? ?转换为十进制:5
?“|”结果: 00000000 00000000 00000000 00001111? ? ?转换为十进制: 15

?【移位操作】

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int x = 2;            
        System.out.println("左移位后的计算结果:"+(x << 2)); //移位处理
        System.out.println("原始变量执行移位后的结果"+x);    //原始内容不改变

    }
}

该程序利用了左位移的操作模式,实现了23的计算结果;利用位运算可以提升程序性能。

?9.if??switch 分支结构

if分支结构
ifif…elseelse if

if (布尔表达式):{

? ? ? ? 语句;

}

if (布尔表达式):{

? ? ? ? 语句true;

} else {

? ? ? ? 语句false;

}

if (布尔表达式):{

? ? ? ? 语句true;

}else if (布尔2):{

}else if (布尔3):{

}……

else if (布尔n):{

}else {

? ? ? ? 语句false;

}

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int paper = 15000; //当前paper的字数
        int min = 10000;   //最少字数
        int max = 20000;   //最多字数
        if (paper >= min && paper <= max){
            System.out.println("大胆地走到招生办,霸气地拿出paper,说不用找了,你们要的学生就是我!"); 
        }else if (paper > max){
            System.out.println("同学别卷了,卷是没有幸福可言的");  
        }else{
            System.out.println("同学别躺平了,不卷是没有幸福科研的");  
        }
       

    }
}


switch语句

swith只能判断(int、char、枚举、String)

不支持布尔表达式

可以使用break终止运行其余case。

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        String details = "情节严重"; //内卷情节
        switch (details){
            case "情节恶劣":{
                System.out.println("你这个卷王!朕要杀了你!"); 
                break;
            }
            case "情节严重":{
                System.out.println("卷的好,赐自尽"); 
                break;
            }
            case "显著轻微":{
                System.out.println("朕赐你一号,叫卷心菜"); 
            }
        }

    }
}

10.循环结构

while 循环结构
while 循环do…while循环

while (循环判断):{

? ? ? ? 循环语句;

? ? ? ? 修改循环结束的条件;

}

do {

? ? ? ? 循环语句;

? ? ? ? 修改循环结束的条件

} while(循环判断)?;

用while实现1~10的数字累加

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int sum = 0 ; //存储结果的变量
        int num = 1 ; //控制循环
        while (num<=10){
            sum += num;
            num++ ;
        }
        System.out.println(sum);

    }
}

用do…while实现1~10的累加

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int sum = 0 ; //存储结果的变量
        int num = 1 ; //控制循环
        do {
            sum += num;
            num++;
        } while (num <= 10);
        System.out.println(sum);

    }
}


for 循环

for (初值;判断;计步器处理){

? ? ? ? 语句;

}

continue; break;

for循环:确定循环次数

while循环:不确定次数,

确定结束条件

退出本次循环 退出整个循环

使用continue控制循环

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        for (int x = 0; x < 10; x++){
            if (x % 3 == 0){
                continue;
            }
            System.out.println(x);
        }
    }
}

如果把continue换成break:

利用嵌套循环打印乘法口诀表

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        for (int x = 1; x <= 9; x++){ // 外部循环
            for (int y = 1; y<=x; y++){
                System.out.print(y+"*"+x+"="+(x*y)+"\t");
            }
            System.out.println();//换行
        }

    }
}

利用嵌套循环打印三角形

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int line = 5;                           //控制行数
        for (int x = 0; x < line; x++){         // 外部循环,控制行数
            for (int y = 0; y < line - x; y++){ //每行的空格数量逐步减少
                System.out.print(' ');          //输出空格
            }
            for (int y = 0; y <= x; y++){
                System.out.print('?');          //输出心形
            }
            System.out.println();               //换行
        }

    }
}

?

?11.pulic static 方法

定义一个无参数、无返回值的方法

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        printInfo(); //调用方法
        printInfo();

    }
    public static void printInfo(){//定义方法
        System.out.println("***********");
        System.out.println("千红一哭");
        System.out.println("***********");
    } 
}

定义一个有参数、有返回值的方法

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        String result = payAndGet(20.0); //调用方法并接收返回值
        System.out.println(result);
        System.out.println(payAndGet(1.0));

    }
    /**
     * 定义一个支付并获取内容的方法,该方法可以在主方法直接调用
     * @param money 要支付的金额
     * @return 根据支付结果获取相应的返回信息
     */
    public static String payAndGet(double money){
        double price = 10.0;
        if (money >= price){
            return "用"+(money)+"元钱购买一份快餐,找零"+(money-price);
        }else{
            return "余额不足,请充值或捡漏。";
        }
    } 
}


?方法重载:方法名称相同,参数类型或个数不同,

方法递归调用:方法本身重复进行,一定要设置好结束条件避免内存溢出。

定义方法重载:

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        int resultA = sum(10,20);     //定义调用2个int的方法
        int resultB = sum(10,20,30);  //定义调用3个int的方法
        double resultC = sum(11.2,25.3); //定义调用2个double的方法
        System.out.println("加法执行结果:"+resultA);
        System.out.println("加法执行结果:"+resultB);
        System.out.println("加法执行结果:"+resultC);

    }
    /**
     * 实现2个int的加法计算
     * @param x 数字1
     * @param y 数字2
     * @return 计算加法结果
     */
    public static int sum(int x, int y){
        return x+y;
    } 
    /**
     * 实现3个int的加法计算
     * @param x 数字1
     * @param y 数字2
     * @param z 数字3
     * @return 计算加法结果
     */
    public static int sum(int x, int y,int z){
        return x+y+z;
    } 
    /**
     * 实现2个浮点数的加法计算
     * @param x 数字1
     * @param y 数字2
     * @return 计算加法结果
     */
    public static double sum(double x, double y){
        return x+y;
    } 
}

这里没有采用书上统一输出的建议(报错int和double转换可能会有数据损失)

方法递归调用

实现1~10数字累加:?return num + sum(num - 1); //递归调用

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        System.out.println(sum(10)); //1~10累加

    }
    /**
     * 数据的累加操作
     * @param num 要进行累加的操作
     * @return 数据累加的结果
     */
    public static int sum(int num){  //最大值
        if (num==1){  //递归结束调用
            return 1; //最终结果返回了1
        }
        return num + sum(num - 1); //递归调用
    } 
    
}

实现1!~10!阶乘的累加:?return num *factorial(num - 1); //递归调用

public class Demo{ //程序所在类
    public static void main(String[]args){ //程序主方法
        System.out.println(sum(10)); //1!~10!累加

    }
    /**
     * 实现阶乘数据的列加操作,根据每一个数字进行阶乘操作
     * @param num 要处理的数字
     * @return 指定数字的阶乘结果
     */
    public static double sum(int num){  //最大值
        if (num==1){  //递归结束条件
            return factorial(1); //返回1的阶乘
        }
        return factorial(num)+sum(num-1); //保存阶乘结果
    } 
    /**
     * 定义方法实现阶乘操作
     * @param num 根据传入的数字实现阶乘
     * @return 阶乘结果
     */
    public static double factorial(int num){
        if (num==1){  //阶乘结束条件
            return 1; //返回1的阶乘
        }
        return num * factorial(num-1); //保存阶乘结果
    } 
    
}

?第一部分Java编程基础 完结撒花(??????)??

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:14:24  更:2022-02-04 11:16:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:43:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码