学习java的第三天
第三天的学习
一、数据类型
1. 常用数据类型
- 基本类型:整数类型、浮点类型、字符类型布尔类型
-
引用类型:类、接口、数组。
注意点:
- String 是类;
- 所有字符的本质是数字
-
定义long型数据时,数据结尾要加L
- 定义float型数据时,数据结尾要加F
2.强制数据类型转换
- 高精度转低精度时需要强制类型转换
double a=3.1415926;
int b=int (a);
- 低精度转高精度会自动转化为高精度
int a=10;
double b=3.1415926;
double c=a+b;
注意:强制转化时切莫内存溢出;
- Java中可用 _来作为数字断开符(只是为了人能分辨,不影响编译)
int a=10_0000_1000;
二、Java运算符
1. Java运算符有哪些
2. Java运算符的优先级
三、标识符
四、Java命名规范
五、变量的作用域
- 类变量:用static修饰,供所在类使用,与所在类同生共死。
- 局部变量:只在所在的方法中有效,必须初始化,才可使用。
- 实例变量:在类里面在方法外面,从属于对象。若不初始化,就为默认值。
- 常量:用final 来定义常量,一般用大写英文字母
final double PI = 3.1415926;
六、包
-
用import引用其他包
-
包的命名:com.company.www....
七、生成JavaDoc文档
八、scanner的运用
package com.huawei.www;
import java.util.Scanner;
public class Try {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一段字符");
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("得到的字符串为:");
System.out.println(str);
}
scanner.close();
}
}
注意:scanner.next()与scanner.nextLine()的区别。
前者遇到空格就停止输入,后者遇到Enter键才停止输入。
九、三大结构
- 顺序结构
- 选择结构
- 循环结构
十、方法
类似于其他语言的函数。
public int add(int a,int b)
{
return a+b;
}
十一、重载
十二、命令行传参
十三、可变参数
无法确定参数个数时可用:
//必须是最后一个参数,才可用...表示后面不定个
public void add(int i,int ...j)
{
}
//本质是数组
十四、递归
package com.huawei.www;
public class Demo10 {
public static void main(String[] args) {
System.out.println(f(5));
}
//计算n的阶乘
public static int f(int n) {
if(n==1)
return 1;
else return n*f(n-1);
}
}
小型计算器:
package com.huawei.game;
import java.util.Scanner;
/**
* @author P_KING
* @version 1.0
* @since 1.8
*/
public class counter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.println("请输入计算符号:");
String Symbol=scanner.next();
System.out.println("请输入要计算的两个数");
int a=scanner.nextInt();
int b=scanner.nextInt();
switch (Symbol) {
case "+":
System.out.println("a+b=" + (counter.add(a, b)));
break;
case "-":
System.out.println("a-b=" + (counter.sub(a, b)));
break;
case "*":
System.out.println("a*b=" + (counter.mul(a, b)));
break;
case "/":
System.out.println("a/b=" + (counter.div(a, b)));
break;
default:
System.out.println("输入的计算式不合法!");
break;
}
System.out.println("是否继续?");
}while (scanner.next().equals("是"));
}
public static double add ( double a, double b)
{
return (a + b);
}
public static double sub ( double a, double b)
{
return (a - b);
}
public static double mul ( double a, double b)
{
return (a * b);
}
public static double div ( double a, double b)
{
return (a / b);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?