快速入门

简介: 本课程讲解Java变量与基本数据类型,涵盖变量定义、使用规范、不同进制写法及类型转换。通过实例演示整型、浮点型等数据类型的声明与操作,深入解析自动与强制类型转换规则,并介绍方法的定义、重载及参数传递机制,夯实编程基础。

变量:定义与使用
环境准备

代码

package com.itheima._01变量;

/**

  • @Description Demo011
  • @Author songyu
  • @Date 2025-05-16 9:41
    */
    public class Demo011 {

    public static void main(String[] args) {

     //目标:定义变量和使用
     //语法:  数据类型  变量名 = 值;
     //特点:  数据可以修改
    
     //  1.整型, 年龄
     int age = 18;
     System.out.println("年龄:"+age);
    
     //  2.修改变量值,过了一年,年龄长了一岁
     age = age + 1;
     System.out.println("过了一年,年龄长了一岁:"+age);
    
     // 2.小数, 定义成绩99.5分
     double score = 99.5;
     System.out.println("成绩:"+score);
    
     // 3.定义存储微信余额,100元
     double money = 100;
     System.out.println("微信余额:"+money);
    
     // 4.买好吃的零食花了 50 元素
     money = money - 50;
     System.out.println("买好吃的零食花了 50 元,微信余额:"+money);
    
     // 5.妈妈给转了200元
     money = money + 200;
     System.out.println("妈妈给转了200元,微信余额:"+money);
    

    }
    }
    变量:使用注意事项

package com.itheima._01变量;

/**

  • @Description Demo012
  • @Author songyu
  • @Date 2025-05-16 10:10
    */
    public class Demo012 {

    public static void main(String[] args) {

     //目标:理解变量使用的注意事项
    
     //1.变量先声明,后使用
     //System.out.println(age); //没有定义age变量所以报错
    
     //2.变量是什么类型就装什么类型的数据
     //int age = 1.1; //1.1是double类型,变量age只能存储int类型数据,所以报错
    
     //3.变量定义使用范围,从定义当前位置开始到最近“}”结束
     int age = 18;
     //这个位置使用age是可以的
     System.out.println(age);
    
     //4重复定义变量名age,是不可以的
     //int age = 22;
    
     //5.变量定义的时候可以不赋值,但使用前必须赋值
     int money;
     money = 100;
     System.out.println(money);
    
     //6.定义变量规范
     //类名:推荐大驼峰(每个单词首字母都要大写,其他字符小写)
     //变量名,方法名:推荐小驼峰(第一个单词字母全部小写,第二个单词开始每个单词首字母都要大写,其他字符小写)
     int userMoney = 100;
    

    }

    //这个位置是不可以使用age
    //age = 20; 报错
    }
    变量:不同进制写法

package com.itheima._02不同进制写法;

/**

  • @Description Demo021
  • @Author songyu
  • @Date 2025-05-16 11:14
    */
    public class Demo021 {

    public static void main(String[] args) {

     //目标:在java程序中不同进制的写法
     //  规范:  二进制  以 0b/0B 开头
     //  规范:  八进制  以 0 开头
     //  规范:  十进制  直接写(默认)
     //  规范:  十六进制  以 0x或0X 开头
    
     //1.二进制
     int a = 0b110;
     System.out.println("二进制0b110:"+a); //6=4+2+0
    
     //2.十进制
     int b = 6;
     System.out.println("十进制6:"+b);//6
    
     //3.八进制
     int c = 0141;
     System.out.println("八进制0141:"+c);//97=1*8∧2 + 4*8∧1 + 1*8∧0=64+32+1=97
    
     //4.十六进制
     int d = 0x5A5F;
     System.out.println("十六进制0x5A5F:"+d);//23135
    
     //5. java的对象内存地址就是十六进制
     Object obj = new Object();
     System.out.println(obj);//打印对象的内存地址:7699a589
    
}

}
AI:十六进制0x5A5F换算成10进制等于多少

变量:基本数据类型
基本数据类型

注释素材
//目标:基本数据类型的使用

//1.整型-字节
//2.整型-短整型
//3.整型-整型
//4.整型-长整型
//5.浮点型-单精度
//6.浮点型-双精度
//7.字符型
//8.布尔型
代码

package com.itheima._03基本数据类型;

/**

  • @Description Demo031
  • @Author songyu
  • @Date 2025-05-16 11:43
    */
    public class Demo031 {

    public static void main(String[] args) {

     //目标:基本数据类型的使用
    
     //1.整型-字节
     byte b1 = 127;//正确
     //byte b2 = 128;//错误,范围 -128~127
     //byte b3 = -129;//错误
    
     //2.整型-短整型
     short s1 = 32767;
     //short s2 = 32768;//错误,范围 -32768~32767
     //short s3 = -32769;//错误
    
     //3.整型-整型
     int i1 = 2147483647;
     //int i2 = 2147483648; //错误,范围 -2147483648~2147483647
    
     //4.整型-长整型,注意值的范围在整型内可以不用l或L,但是在长整型内必须使用l或L,
     //    推荐无论什么情况,long都写上L(可读性好)
     long l1 = 9223372036854775807L;
    
     //5.浮点型-单精度, 注意:浮点型数据后面添加f/F,推荐F
     //  注意:单精度浮点数精确只有7位(小数点前后加起来的位数),科学计算法精准9位数字
     float f1 = 3.24111111111111111111111111111111111111111111111111111111111111111F;
     System.out.println(f1);
     float f2 = 123456789999F;
     System.out.println(f2);//1.2345678E7
    
     //6.浮点型-双精度 ,注意:双精度浮点数后面D或d可有可无,推荐加上D,默认小数是double
     //  科学计算法精确位数17位(数点前后加起来的位数)
     double d1 = 1234567890123456789123456789D;
     System.out.println(d1);
     // 扩展:如果希望小数精准,后面会学习BigDecimal
    
     //7.字符型
     char c1 = 'a';
     System.out.println(c1);
     System.out.println((int)c1);//97
    
     //8.布尔型
     boolean bl1 = true;
    
     //起变量名字的注意事项
     //  1.不能以关键字作为变量名、方法名或类名
     //long long = 100; 报错
     //String String ="abc"; 可以,String不是关键字
     //  2.不能以数字开头,并且包含特殊字符&,%,#,;等
     //String 123a = "abc"; 报错
     //String a123; = "abc"; 报错
     //  3.变量名、方法名建议小驼峰命名,类名建议大驼峰命名,包名要求全部小写
    

    }
    }
    方法:定义与使用

package com.itheima._04方法;

/**

  • @Description 学习java代码的方法
  • @Author songyu
  • @Date 2025-05-16 15:05
    *
  • 方法概念:是一个代码块,封装了一个功能或任务的多条语句
    *
  • 方法作用:代码块的复用,功能的复用
    *
  • 方法定义: [访问修饰符] [static] 返回值类型 方法名([形参列表]) {
  • 方法体
  • [return 返回值];
  • }
  • 例子:
  • public static void main(String[] args) {
    *
  • }
  • 解释:
  • public 访问修饰符,后面讲解
  • static 标识为静态方法,后面讲解
  • 返回值类型,void 表示没有返回值,如果有返回值要写名返回值的数据类型,就是功能方法最终处理返回的结果
  • main,方法名
  • String[] args, 参数,只需要定义类型和参数名即可,多个参数使用“,”隔开
  • 参数作用:外部调用方法传入的数据(已知条件)
  • 方法体,是实现业务逻辑处理的代码
  • [return 返回值],返回最终处理的结果
    *
  • 调用方法: 方法名([实参])
  • 实参是真正的输入数据
    */
    public class Demo041 {

    //定义main方法:程序的入口
    public static void main(String[] args) {

    //调用无参无返回值方法,可以调用多次,进行重用
    sum();
    sum();

    //调用有参方法,没有返回值
    sum2(1,2);
    sum2(1000,2000);

    //调用有参有返回值方法,返回结果
    int result = sum3(12, 25);
    System.out.println("求和:"+result);//println(数据)在输出数据后添加换行
    }

    //1.定义无参和无返回值方法:计算求和任务
    public static void sum(){
    //定义第一个数
    int a = 100;

    //定义第二个数
    int b = 200;

    //求和
    int c = a + b;

    //打印
    System.out.println("第一个数:"+a+",第二个数:"+b+",求和:"+c);
    }

    //2.定义有参和无返回值方法:计算求和任务
    public static void sum2(int a,int b){

    //求和
    int c = a + b;

    //打印
    System.out.println("第一个数:"+a+",第二个数:"+b+",求和:"+c);
    }

    //3.定义有参和有返回值方法:计算求和任务
    public static int sum3(int a,int b){
    System.out.print("第一个数:"+a+",");
    System.out.print("第二个数:"+b+",");

    //求和
    int c = a + b;

    //返回
    return c;

    }
    }
    方法:方法重载

package com.itheima._04方法;

/**

  • @Description 方法重载
  • 方法重载
  • 概念:在一个类中方法名一样,但是参数个数或类型或顺序有一个不一样,就是方法重载,与返回值没有关系。
  • 好处:在一个类中,可以重用方法名,简化起名字。功能类似可以使用相同的方法名,但是参数不可以一样
    */
    public class Demo042 {

    public static void main(String[] args) {
    demo();
    demo(1);
    return;//可以直接结束当前方法运行,要求当前方法没有返回值
    }

    //方法
    public static void demo(){
    System.out.println("无参方法");
    }

    /
    下面的方法定义会报错:因为方法名一样,参数也一样(都没有参数) 这样是不允许
    public static void demo(){
    System.out.println("无参方法xxxx");
    }
    /

    //方法重载1: 参数个数不一样
    public static void demo(int a){
    System.out.println("1个参数的方法");
    }

    //方法重载2: 参数个数不一样
    public static void demo(int a,double b){
    System.out.println("2个参数的方法");
    }

    //方法重载3:参数类型的顺序不一样
    public static void demo(double b,int a){
    System.out.println("2个参数的方法");

    }

//方法重载4:参数类型不一样
public static void demo(int a,int b){
    System.out.println("2个参数的方法");
}

}
类型转换:自动类型转换

package com.itheima._05类型转换;

/**

  • @Description Demo051
  • @Author songyu
  • @Date 2025-05-16 16:21
    */
    public class Demo051 {

    public static void main(String[] args) {

     //目标:自动类型转换,范围小自动转换范围大
    
     //字节 自动转 整型
     byte b1 = 10;
     print(b1);//10
    
     //短整型 自动转 整型
     short s1 = 129;
     print(s1);//129
    
     //字符  自动转 整型
     char c1 = 'a';
     print(c1);//97
    
     //整型 自动转 long
     int i1 = 100;
     long l1 = i1;
     l1=1234567890123456789L;
     System.out.println(l1);
     float f1 = l1;
     System.out.println(f1);//精确8位,其他科学技术法
     double d1 = f1;
    
}

/**
 * 打印整型数据
 * @param a
 */
public static void print(int a){
    System.out.println(a);
}

}
类型转换:表达式自动类型提升

package com.itheima._05类型转换;

/**

  • @Description Demo052
  • @Author songyu
  • @Date 2025-05-16 16:59
    */
    public class Demo052 {

    public static void main(String[] args) {

     //目标:参与运算表达式类型自动提升, 提升位参与运算范围较大的变量类型
     // 注意点:short,byte,char参与运算直接提升位int类型
    
    // byte + int 最后是int
    byte b1 = 10;
    int i1 = 20;
    //byte b2 = b1 + i1; //报错, 因为里面有int,最终结果也是int
    int i2 = b1 + i1;

    //char + int + long  最终 long
    char c1 = 'a';
    int i3 = 10;
    long l1 = 100L;
    long l4 = c1+ i3 + l1;

    //面试题:2个byte类型相加,返回什么类型? 答:int
    byte b2 = 5;
    byte b3 = 6;
    //byte b4 = b2 + b3; 报错,因为byte参与运算会自动提升为int
    int i4 = b2 + b3;
    int i5 = 100;
    int i6 = i4 + i5;

}

}
类型转换:强制类型转换

package com.itheima._05类型转换;

/**

  • @Description Demo053
  • @Author songyu
  • @Date 2025-05-16 17:24
    */
    public class Demo053 {

    public static void main(String[] args) {

     //目标:强制类型转换
     // 语法: 数据类型 范围小的变量名 = (数据类型)范围大的变量名;
    
     // 整型 120 转换为 字节 结果还是 120
     int i1 = 120;
     byte b1 = (byte) i1;//万能快捷键,在红线处使用 alt+enter 提示解决
     System.out.println(b1);
    
     int i2 = 1500;
     byte b2 = (byte) i2;//万能快捷键,在红线处使用 alt+enter 提示解决
     System.out.println(b2); // -36
    
     double d1 = 99.5D;
     int i3 = (int) d1;//99
     System.out.println(i3);
    
     double d2 = 991111111111.9D;
     int i4 = (int) d2;//有可能被截断(超过int的4个字节就会被截断)
     System.out.println(i4);
    
     //String 转换 整型 会直接报错, 因为String是引用数据类型,不能转换成基本数据类型直接会报错
     // String str = "99abc";
     // int i5 = (int)str;
    

    }
    }

相关文章
|
1天前
|
人工智能 Java API
快速入门
本课程讲解JDK安装与环境变量配置、IDEA开发工具使用及Java基础语法。涵盖真实工作场景中的开发准备,如JDK和IDEA的安装激活、首个Java程序编写、注释规范、字面量类型及常用快捷键,助你快速上手Java开发。
|
1天前
|
C++
模型评估
模型评估涵盖能力、对齐与效率三大维度,涉及语言理解、知识问答、推理代码等任务,常用MMLU、C-Eval、GSM8K等基准,结合Hugging Face工具实现自动评测,面试关注幻觉检测、指标设计与人工协同评估。
|
1天前
|
缓存 算法 C++
模型推理加速
大模型推理加速关键技术:KV-Cache优化、连续批处理、投机解码、模型并行与vLLM等。涵盖原理、内存计算、优化策略及实战,助力高效部署与面试备战。
|
1天前
|
算法
模型压缩与量化
模型压缩通过量化、稀疏化、知识蒸馏等技术,减小模型体积与计算开销,助力大模型在端侧部署。涵盖INT8/INT4、GPTQ、SmoothQuant等方法,平衡压缩比、精度与速度,并支持实战量化加载,提升推理效率。
|
1天前
|
存储 机器学习/深度学习 编解码
预训练技巧
预训练是大模型的核心基础,涵盖混合精度、分布式训练、ZeRO优化、FlashAttention等关键技术,通过高效计算与显存优化,实现大规模模型的快速稳定训练。
|
1天前
|
机器学习/深度学习 存储 知识图谱
知识蒸馏
知识蒸馏是一种模型压缩技术,通过让小模型(学生)模仿大模型(教师)的输出或中间特征,实现性能逼近甚至超越。核心方法包括基于软标签的Hinton蒸馏、带温度的softmax平滑分布、以及利用隐藏层特征的特征蒸馏。分为黑盒(仅用输出)与白盒(访问内部)两种模式,广泛用于加速推理与提升小模型泛化能力。(238字)
|
1天前
|
机器学习/深度学习 算法 关系型数据库
强化学习
强化学习(RL)是一种通过智能体与环境交互,以最大化累积奖励为目标的学习方法。核心包括状态、动作、奖励、策略与价值函数,依赖试错和延迟奖励机制。常见算法如Q-learning、PPO、DPO等,广泛应用于游戏、机器人及大模型训练。结合人类反馈(RLHF),可实现对齐人类偏好的智能行为优化。(239字)
|
1天前
|
存储 物联网 决策智能
微调技术
微调是适配预训练模型的关键技术,涵盖指令微调、对齐微调与高效参数微调。LoRA通过低秩分解减少参数量,提升训练效率;其变体如LoRA+、QLoRA、AdaLoRA进一步优化性能与资源消耗。Prefix Tuning与Prompt Tuning则通过少量参数实现高效微调,适用于不同场景需求。(239字)
|
1天前
|
机器学习/深度学习 自然语言处理 算法
分词器详解
分词器将文本转为模型可处理的数字序列,主流算法有BPE、WordPiece和SentencePiece。BPE高效但中文支持弱;WordPiece用于BERT,适合英文;SentencePiece语言无关,支持中日文。实战中常用SentencePiece处理中文,Hugging Face工具处理英文。面试需掌握算法差异、中文分词策略、词汇表设计及OOV问题解决。
|
1天前
|
自然语言处理
主流大模型结构
本文介绍了四大模型架构:Encoder-Decoder、Decoder-Only、Encoder-Only和Prefix-Decoder,涵盖代表模型与应用场景。详解GPT系列演进、LLaMA发展及主流中文大模型,并对比GPT-4、LLaMA-3、Qwen等在架构、参数量与上下文长度等方面的异同。