Java入门(三):变量和运算符

02-Java变量和运算符 (1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换,提示:有风险,可能会损失精度或溢出。//(1)先取a的值“1”放操作数栈(2)a再自增,a=2(3)再把操作数栈中的"1"赋值给a,a=1。//()中的数据类型必须商是-2,余数是-1 (-2)*2+(-1) = -4-1=-5。//5%-2 ==>商是-2,余数是1 (-2)*(-2)+1 = 5。// 输出结果是5,z的值是6。 阅读详情

上次谈到了Java的基本数据类型,今天接着聊Java的变量、运算符。

一、变量

1、变量的分类

变量分为成员变量、局部变量和常量,其中成员变量又分为实例变量、类变量。

2、变量的定义

语法:变量类型(可以是基本类型,也可以是其他) 变量名 = 变量值 英文;结尾。

2.1 可以单次声明一个变量,也可以单次声明多个变量。

2.2 不能以数字、运算符、特殊字符(下划线、美元符号$除外)开头。

2.3 下划线 _ 可以作为开头,但是不建议这样命名。

2.4 可以使用中文命名,但是不建议这样做。

2.5 不能使用现有Java关键字和保留字命名。

2.6 建议使用驼峰命名法。

类名的首字母大写;变量名、方法名首字母小写;包名全部小写;特殊含义的缩略词全部大写;常量名全部大写;多个单词可以使用下划线分割。做到见名知意,不要使用拼音字母缩写、拼音全拼、英文拼音混合的命名格式,不知道如何翻译请查字典或在线翻译单词。变量名长一点无所谓,命名合理、规范,见名知意就可以。

3、变量的使用

实例变量的使用,需要使用new关键字创建对象,再通过对象引用。静态变量可以直接使用。在使用变量前,请先初始化赋值,不能声明不赋值直接使用。

复制代码
package javalearningday02;

/**
 * 变量的使用
 * @author 小川94
 * @date 2018年1月21日
 */
public class UseVariable {
    
    // 成员变量,也可以称为全局变量,可在本类或者其他类中使用
    private int age = 18;
    
    // 声明一个静态常量,成员变量的一种,也是一个类变量
    private static final String GENDER = "BOY";
    
    // 常量,由关键字final定义
    private final String NAME = "小川94";
    
    public static void main(String[] args) {
        // 在main方法中定义的局部变量
        int anotherAge = 20;
        
        // 变量的定义
        int a; // 单个变量定义
        int b = 2; // 单个变量定义并初始化
        int c,d; // 单次定义多个变量
        int _num = 1; // 可以是下划线开头,但是不建议
        int num_ = 2; // 可以下划线结尾
        int $num; // 也可以美元符号开头
        int num2; // 可以是数字结尾
        //int +num; // 错误写法,不能用运算符开头
        //int .num; // 错误写法,不能用.号开头
        //int 2num; // 错误写法,不能以数字开头
        //int *num; // 错误写法,不能以*开头,其他特殊符号也是不可以的
        int 变量 = 2; // 可以使用中文,但是建议不要使用
        
        // 不能使用关键字命名
        //int class; // 不能使用关键字
        //int goto; // Java保留关键字(保留关键字是指那些现有Java版本还未使用的关键字,但还是关键字)
        //int const; // Java保留关键字
        
        // 不能使用保留字命名
        /*
        int true;
        int false;
        int null;*/
    }
    
    public static String askName(String name){
        // 局部变量只能在该变量定义并且初始化的操作域中使用,跨域使用会报错
        // 错误写法  anotherAge cannot be resolved to a variable
        //System.out.println(anotherAge);
        
        // 不能对非静态变量进行静态引用
        // 错误写法  cannot make a static reference to the non-static field age
        // System.out.println(age); 
        
        // 对于全局变量的引用,如果是非静态的,需要利用对象引用
        UseVariable useVariable = new UseVariable();
        System.out.println(useVariable.age);
        
        // 类变量(静态成员变量)可以直接使用
        System.out.println("小川94的性别是"+GENDER);
        return "Hello "+name;
    }
}
复制代码

二、运算符

知道了数据类型,知道如何声明一个变量并初始化,下面就开始做数据运算操作。

1、赋值运算符。

=(赋值),要和数学中的等号区分。

2、算术运算符。

+(加法)、-(减法)、*(乘法)、/(除法)、%(取余)。这五种是开发中比较常用的。

关于除法:

(1)如果被除数是0,运行则会报算术异常,在做除法时需要判断被除数是否为0。

(2)如果是两个整数做除法,可能会丢失计算精度,选择合适的数据类型尤为重要。

关于取余:

(1)负数对整数的余数是负数和0。

(2)正数的余数是有周期性变化的。

(3)余数是有范围的数,可以控制数据范围。

3、数值类型之间的转换

数值之间的转换可以分为自动转换、强制转换两种形式。

3.1 自动转换

如果两个数中有一个为double类型,另一个数会被转为double类型,然后再进行运算。

如果两个数中有一个为float类型,另一个数会被转为float类型,然后再进行运算。

如果两个数中有一个为long类型,另一个数会被转为long类型,然后再进行运算。

如果没有上述的三种的类型,两个数都会被转为int进行运算。

小范围的数据类型可以自动转换到大范围数据类型,大范围的数可以涵盖小范围的数,小范围内的数可以映射到大范围内的数。

3.2 强制类型转换

从大范围的数向小范围的数转换,称之为强制转换,用法是在目标数据前使用括号,将想要转换的类型输入括号即可。

关于强制转换,有几点需要注意:

(1)范围内的数,转换是没有损失的。

(2)double转换为float,会出现精度损失。

(3)浮点数转换为整数,只会保留原数的整数位,不会保留小数位,也不会进行四舍五入操作。

(4)范围外的数,会有溢出的风险。

4、结合赋值和运算符

有时候为了省事,会把算术运算符和赋值运算符连着一起写。如:int n += 4; 这一句和int n = n+4;是等价的,其他的算术运算符也是如此,可以单独写在赋值符号的前面。

5、自增、自减运算符

自增的语法是 变量++; 自减的语法是 变量--; 作用是将变量的值增加1,注意是变量,不是整体。

先加加(++变量)和后加加(变量++)在运算时有很大的不同。

(1)先加加,这里为了方便简写为++n吧,是先将n的值加1,然后取n的值作为表达式(++n)整体的值。

int b = ++a;

-->第一步 a = a+1;

-->第二步 b = a;

(2)后加加,同样为了方便简写为n++;是先将n的值作为表达式(n++)整体的值,然后将n的值加1。

int b = a++;

-->第一步 b = a;

-->第二步 a = a+1;

复制代码
    /**
     * 后加加,先将变量值赋给整体表达式,再计算n+1。后减减同理。
     */
    public static void selfAddAfter() {
        int n = 5;
        n = n++;
        n = n++;
        n = n++;
        n = n++;
        System.out.println("n的值是"+n); // n = 5;
    }
    
    /**
     * 先加加,先将变量值加1,再将加过1后的值赋给整体表达式。先减减同理
     */
    public static void selfAddBefore() {
        int m = 5;
        int n = ++m;
        System.out.println("m的值是"+m); // m = 6;
        System.out.println("n的值是"+n); // n = 6;
    }
复制代码

6、关系运算符

关系运算符,也可以称为比较运算符,包括>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于),比较的结果为true或false。

7、逻辑运算符

逻辑运算符,包含&&(逻辑与运算)、||(逻辑或运算)、!(逻辑非运算)

在进行逻辑运算时,会出现短路运算的情况,即前一个逻辑判断已经可以为结果定性,后面的逻辑判断是不会执行的。

复制代码
    /**
     * 逻辑运算符
     */
    public static void logicOperation() {
        // false,并且发生了短路运算,因为3>4为false,可以直接为整个表达式定性,无需再判断4>5表达式的值
        // 与运算中,所有条件都为true时,整体表达式才为true
        System.out.println(3>4 && 4>5); // 4>5下面标黄了,提示是Dead code,说明不会运行后半部分的表达式
        
        // true,这里也发生了短路运算,不会去判断3>4的值
        System.out.println(2>1 || 3>4);
        // 或运算中,只要有一个为true,整个表达式的值就是true
        System.out.println(3>4 || 2>1);
        
        // true,非运算中,true变false,false变true
        System.out.println(!(4>5));
    }
复制代码

8、位运算符

与(&)、非(~)、或(|)、异或(^)、<<(带符号左移)、>>(带符号右移)、>>>(无符号右移),下面将详细介绍这七种运算符。

8.1 与(&)运算

复制代码
    /** 
     * 与(&)运算
     * 规则:先将要运算的数转为二进制,当相同的位上均为1时结果为1,否则结果为0
     */
    public static void andOperation() {
        /**
         * 98的原码: 00000000 00000000 0000000 01100010
         * 18的原码: 00000000 00000000 0000000 00010010
         * 与运算后:  00000000 00000000 0000000 00000010
         * 转换为十进制的数是2
         */
        int num = 98&18;
        System.out.println("(98&18)的与(&)运算结果:"+num); // num = 2
    }
复制代码

8.2 非(~)运算

复制代码
    /** 
     * 非(~)运算
     * 规则: 正数的非运算是先取反再计算补码,负数的非运算是先计算补码再取反
     */
    public static void nonOperation() {
        byte num = ~90;
        /**
         * 正数非运算:原码 -->取反(1变0,0变1,非运算)-->反码(符号位不变,其余1变0,0变1)--->补码(反码的基础上加1)
         *      90
         * 原码: 00000000 00000000 00000000 01011010
         * 取反: 11111111 11111111 11111111 10100101
         * 反码: 10000000 00000000 00000000 01011010
         * 补码: 10000000 00000000 00000000 01011011
         * 转为十进制数则是-91
         */
        System.out.println("90的非(~)运算结果:"+num); // num = -91
        
        /**
         *      10
         * 原码: 00000000 00000000 00000000 00001010
         * 取反: 11111111 11111111 11111111 11110101
         * 反码: 10000000 00000000 00000000 00001010
         * 补码: 10000000 00000000 00000000 00001011
         * 转为十进制数是-11
         */
        System.out.println("10的非(~)运算结果:"+(~10)); // -11
        
        /**
         * 负数非运算:原码 --->反码(符号位不变,其余1变0,0变1)--->补码(反码的基础上加1)--->取反(1变0,0变1,非运算)
         *       -5
         * 原码: 10000000 00000000 00000000 00000101
         * 反码: 11111111 11111111 11111111 11111010
         * 补码: 11111111 11111111 11111111 11111011
         * 取反: 00000000 00000000 00000000 00000100
         * 转为十进制为 4 
         */
        System.out.println("(-5)的非(~)运算结果:"+(~(-5))); // 4
    }
复制代码

8.3 或(|)运算

复制代码
    /** 
     * 或(|)运算
     * 规则:当两边操作数的位有一边为1时,结果为1,否则为0。
     */
    public static void orOperation() {
        /**
         * 23的原码: 00000000 00000000 00000000 00010111
         * 75的原码: 00000000 00000000 00000000 01001011
         * 或运算:   00000000 00000000 00000000 01011111
         * 转换为十进制数是95
         */
        System.out.println("(23|75)的或(|)运算结果"+(23|75)); // 95
    }
复制代码

8.4 异或(^)运算

复制代码
    /**
     * 异或(^)运算
     * 规则:两边的对应位不同时,取1,否则取0。如果遇到负数,需要用负数的补码进行计算
     */
    public static void differentOr() {
        /**
         * 17的原码: 00000000 00000000 00000000 00010001
         * 29的原码: 00000000 00000000 00000000 00011101
         * 异或运算:  00000000 00000000 00000000 00001100 
         * 转为十进制数是12
         */
        System.out.println("(17^29)的异或(^)运算结果:"+(17^29)); //12
        
        /**
         * -17的原码: 10000000 00000000 00000000 00010001
         * -17的反码: 11111111 11111111 11111111 11101110
         * -17的补码: 11111111 11111111 11111111 11101111
         *  29的补码: 00000000 00000000 00000000 00011101
         *  运算结果:  11111111 11111111 11111111 11110010
         *  对结果反码: 10000000 00000000 00000000 00001101 
         *  对结果补码: 10000000 00000000 00000000 00001110
         *  结果转为十进制数是-14
         */
        System.out.println("(-17^29)的异或(^)运算结果:"+(-17^29)); //-14
    }
复制代码

8.5 带符号左移(<<)运算

复制代码
    /**
     * 带符号左移(<<)运算
     * 规则: 符号位不变,左移几位,则在补码(正数的补码、反码与原码一样)的后面补几个0
     *      也可以简单理解成数学运算,左移几位,就是原数乘以2的几次方
     */
    public static void withSymbolToLeft() {
        /**
         * 10的原码: 00000000 00000000 00000000 00001010
         * 左移四位:  00000000 00000000 00000000 10100000
         * 转换为十进制数是160
         * 也可以理解成数学运算中的  10*(2*2*2*2) = 10*16 = 160
         */
        System.out.println("(10<<4)带符号左移(<<)运算的结果:"+(10<<4)); // 160
        /**
         * -9的原码: 10000000 00000000 00000000 00001001
         * -9的反码: 11111111 11111111 11111111 11110110
         * -9的补码: 11111111 11111111 11111111 11110111
         * 左移4位:  11111111 11111111 11111111 01110000
         * 再反码:   10000000 00000000 00000000 10001111
         * 再补码:   10000000 00000000 00000000 10010000
         * 转为十进制数是-144
         * 也可以理解成数学运算中的  (-9)*(2*2*2*2) = (-9)*16 = -144
         */
        System.out.println("(-9)<<4)带符号左移(<<)运算的结果:"+((-9)<<4)); // -144
    }
复制代码

8.6 带符号右移(>>)运算

复制代码
    /**
     * 带符号右移(>>)运算
     * 规则: 正数右移时,右移几位,在补码的左边加几个0,右边的被自动挤掉;
     *      负数右移时,右移几位,在补码的左边加几个1,右边的被自动挤掉
     */
    public static void withSymbolToRight() {
        /**
         * 20的原码: 00000000 00000000 00000000 00010100
         * 右移4位:  00000000 00000000 00000000 00000001
         * 转为十进制数是1
         */
        System.out.println("(20>>4)带符号右移(>>)运算结果:"+(20>>4));
        /**
         * -86的原码: 10000000 00000000 00000000 01010110
         * -86的反码: 11111111 11111111 11111111 10101001
         * -86的补码: 11111111 11111111 11111111 10101010
         * 右移四位:   11111111 11111111 11111111 11111010
         * 再计算反码:  10000000 00000000 00000000 00000101
         * 再计算补码:  10000000 00000000 00000000 00000110
         * 转为十进制数是-6
         */
        System.out.println("(-86)>>4带符号右移(>>)运算结果:"+((-86)>>4)); // -6
    }
复制代码

8.7 无符号右移(>>>)运算

复制代码
    /**
     * 无符号右移(>>>)运算
     * 规则: 无论正数还是负数,右移几位,则在其补码左边加上几个0
     */
    public static void noSymbolToRight() {
        /**
         * 50的原码: 00000000 00000000 00000000 00110010
         * 右移4位:  00000000 00000000 00000000 00000011
         * 转为十进制数是3
         */
        System.out.println("(50>>>4)的无符号右移(>>>)运算结果:"+(50>>>4)); // 3
        /**
         * -28的原码: 10000000 00000000 00000000 00011100
         * -28的反码: 11111111 11111111 11111111 11100011
         * -28的补码: 11111111 11111111 11111111 11100100
         * 右移四位:   00001111 11111111 11111111 11111110
         * 再转为十进制数是  0+0+0+0+134217728+67108864+33554432+16777216
         *                +8388608+4194304+2097152+1048576+524288+262144+131072+65536
         *             +32768+16384+8192+4096+2048+1024+512+256
         *             +128+64+32+16+8+4+2+0 = 268435454
         */
        System.out.println("(-28)>>>4的无符号右移(>>>)运算结果:"+((-28)>>>4)); // 268435454
    }
复制代码

9 三目运算符

语法为 条件 ? 条件为true执行 : 条件为false执行 。可以单个写,也可以多层嵌套,但是如果条件比较复杂,建议单独抽出来处理,便于阅读和维护。

复制代码
    public static void threeHeadOperation() {
        int n = 3;
        int m = 10;
        int maxNum = n>m ? n : m; //单个写法
        System.out.println(maxNum); // maxNum = 10
        
        // 设定忽略num小于0的情况
        int num = 4;
        String str = num != 0 ? num%2 == 0 ? "是偶数" : "是奇数" : "是0";
        System.out.println(str); // 是偶数
        
        // 上面的三目运算符等价于下面的代码
        if (num != 0) {
            if (num%2 == 0) {
                System.out.println("num是偶数");
            } else {
                System.out.println("num是奇数");
            }
        } else {
            System.out.println("num是0");
        }
    }
复制代码

10 instanceof

复制代码
public class JavaOperation {

    public static void main(String[] args) {
        instanceOfOperation();
    }

/** * instanceof 是用来在运行时指出对象是否是特定类的一个实例 */ public static void instanceOfOperation() { A a = new A(); String str = a instanceof A ? "a是A的实例" : "a不是A的实例"; System.out.println(str); // a是A的实例 String str2 = null instanceof A ? "null是A的实例" : "null不是A的实例"; System.out.println(str2); // null不是A的实例 } } class A{ }
复制代码

 

Java入门(三)源码已经上传Github,地址:https://github.com/XiaoChuan94/javalearning/tree/master/javalearningday02,可以参考。

 

文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

公众号后台输入关键字“Java学习电子书”,即可获得12本Java学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南 购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试 阅读详情

相关推荐

安卓光速虚拟机ADB调试实战:从密钥配置到设备连接

本文详细介绍了在安卓光速虚拟机中进行ADB调试的完整实战流程。核心在于通过密钥配置解决设备未授权问题,并启用网络调试与端口映射,最终实现电脑与虚拟机的稳定连接。文章提供了从原理理解、脚本修改到实战命令和疑难排查的全方位指南,帮助开发者和爱好者高效利用光速虚拟机作为移动测试沙盒。

CAT789的专栏 568

ESP8266开发环境搭建:VSCode+ESP-IDF+RTOS_SDK完整指南

嵌入式开发中,ESP8266作为低成本Wi-Fi MCU,其环境搭建常因工具链碎片化而受阻。核心原理在于版本锁定与工具链配置,避免依赖冲突。技术价值在于通过VSCode、ESP-IDF和RTOS_SDK组合,实现稳定编译与烧录,提升开发效率。应用场景包括物联网设备原型开发、多任务调度项目。自然收敛到本文主题:手把手解决ESP8266_RTOS_SDK环境搭建中的常见报错,如串口连接超时和安装卡顿,助你快速上手。

weixin_34203832的博客 541

RexUniNLU零样本通用自然语言理解:nlp_deberta_rex-uninlu_chinese-base模型实战解析

本文深入解析了RexUniNLU零样本通用自然语言理解模型(nlp_deberta_rex-uninlu_chinese-base)的实战应用。通过详细的环境配置、模型加载及实战案例,展示了该模型在零样本场景下的强大能力,如实体识别和复杂关系抽取,显著提升NLP任务效率。

weixin_29088655的博客 251

Java面试问题

Java 0.有看过JDK源码吗? 1.简单说一下有IO流 2.Springbuffer和Springbuilder的区别 3.++变量和变量++有什么区别?哪个是先赋值后运算? 4.==和equls的区别 5.重写和重载的区别? 重载的参数类型一定是不同的吗? 6.反射的实现方式有哪几种? 7.介绍一下Java虚拟机的垃圾回收机制 8.介绍一下堆 9.java方法传参是值传递还是引用传递 数据结构 1.HashMap原理,产生Hash冲突怎么解决 2.ArrayList和ArrayTable是什么 3.

DreamOf30Year的博客 657

TexGen模型导出ABAQUS inp文件时纱线材料属性缺失?5分钟快速修复指南

本文针对TexGen模型导出ABAQUS inp文件时纱线材料属性缺失的问题,提供了快速修复指南。通过手动编辑inp文件或使用Python脚本自动补全材料属性,帮助复合材料仿真工程师高效解决问题。文章还介绍了TexGen导出前的预防性设置和ABAQUS中的验证技巧,确保仿真分析的准确性。

qsc901234的博客 250

哨兵一号数据snap预处理_利用SNAP软件进行Sentinel-1A卫星微波影像的预处理

利用SNAP软件对雷达影像进行预处理,主要包括热噪声去除、轨道文件校正、辐射定标、滤波校正、多普勒地形校正,最终获得入射角和后向散射信息。数据:本次实验所用数据为哨兵一号(Sentinel-1A)干涉宽幅模式(Interferometric Wideswath,IW)下经过多视处理和地距转换的GRD格式产品一般处理流程如下:0 SNAP软件安装软件安装:安装成功后打开SNAP后如图所示:1 数据...

weixin_30000407的博客 1万+

x++ 与 ++x 的区别整理

文章目录x++与++x的区别实例演示 x++与++x的区别 简单的表达式 中x++和++x表示着相同的意思,比如常用于for循环语句中; 当 递增 或者 递减 的运算结果被直接用在其他表达式中,x++与++x就代表着 不同 的意思了 ++x:变量 x的值先增加 ,再 计算整个表达式的值 ; x++:变量x的值在 表达式计算后 再增加; 实例演示 x = 1; y = ++x; //x的值先增加 结果:x=2,y=2 x = 1; y = x++; //先执行表达式,再增加 结果:x=2,y=1

fenglolo的博客 4万+

rag综述——RAG技术发展流程、最新技术挑战与系统级优化

RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。

lovehu6686的博客 1244

js 变量++、++变量的区别

JavaScript 变量++、++变量的区别 num++ 输出 时 先输出再计算 -++num 输出 时 先计算再输出 var num = 0; console.log(num++)//0 console.log(++num)//2

weixin_45802907的博客 595

2024高教社杯数学建模国赛B题丨国一原创论文解析及源码超详细分享!

继续分享一篇2024国赛B题的国奖论文,包含可运行源代码jupyter,国赛B题通常比较聚焦实际复杂系统的多目标优化决策,主要偏重算法实现与概率建模解决开放性的管理问题。而且高度开放,无标准答案,学科交叉复杂,如资源调度、交通优化、海洋探测等。比较建议有一定统计学基础的同学参加。

ihui永不放弃 6743

使用GitLab的VS Code插件 GitLab Workflow 来进行项目的DevOps管理,助力研发效能

使用VS Code的GitLab Workflow插件,进行项目的DevOps管理,将效率提升到MAX。直接在VScode中管理流水线,一键跳转到创建 Issues,MR

知无涯 5295

浏览器即开即用:ESP32/ESP8266 在线开发与烧录工具全指南

嵌入式开发常被本地工具链的安装与配置挡住去路:Python、Git、CMake、Ninja,以及不同架构的交叉编译器,任何一环版本不匹配都会耗尽耐心。浏览器技术的成熟正在改变这一局面,通过模拟器、云 IDE、Web Serial 烧录和在线调试工具,开发者无需预先搭建环境就能完成从编写代码、编译固件到烧录硬件的完整流程。Wokwi 等在线模拟器可虚拟开发板与常用外设,适合快速验证逻辑与学习原理;ESP Web Flasher、ESPHome Web 则利用浏览器串口能力将固件直接写入真实芯片;MQTT 在线

weixin_29189381的博客 285

FPGA实现DDR接口

verilog// DDR2控制器状态机// 初始化序列// 发出初始化命令endendendend// 自动预充电end// 其他状态...endcaseendend。

whm128的博客 1002

Java入门(三)-变量与运算符

【代码】Java入门(三)-变量与运算符。

Yc的博客 238

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java 基础 从入门到入土(三) 变量方法与重载;运算符

算数运算符 算数运算符 + 加法 - 减法 * * 乘法 * / 除法 * % 取余(取模) * * += * -= * * ++ 自增,自加一 * -- 自减,自减一 * * ++放在变量前面,先赋值,后参与代码执行 * ++放在变量后面,先参与代码执...

qq_40310545的博客 1080

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java入门与基础语法

java入门及其基础语法

qq_74146366的博客 1147

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Java入门】 java详细知识心得

该篇文章是学习《java面向对象程序设计》一书的心得知识,希望对大家有所帮助

weixin_62513677的博客 362

Java从入门到“放弃”(精通)之旅——运算符③

运算符作为Java语言的基础构件,其正确使用直接影响代码的质量和性能。希望本文能帮助开发者在实际工程中更加游刃有余地运用这些基础但强大的工具。

此人很懒,什么都留下了...快进来看看吧 2413

Java: 数据类型与变量和运算符

Java中得数据类型与变量和运算符详解

zm3rttqs9f的博客 1880

二. Java变量和运算符

定义:数据类型 变量名 = 变量值;使用:直接根据变量名使用/*概述:变量就是内存中的存储空间.空间中存储着经常发生改变的数据变量定义格式:数据类型 变量名 = 变量值;数据类型:整数类型:int注意:int只能记录整数类型(举小数例子报错)如果需要存小数需要把数据类型改成小数类型*/// 定义变量// 使用变量:根据变量的名字进行使用就可以// 问题:上面代码定义了几次变量 答案:1 只要带数据类型的才是定义了新的变量。

qq_47410940的博客 1541

JAVA基础——数据类型,变量,运算符

在Java中数据类型主要分为两类:基本数据类型和引用数据类型。

2501_91555527的博客 1945

JAVA基础的学习:变量与运算符

在 Java 编程的世界里,是存储数据的 “容器”,是操作数据的 “工具”。

qq_50060861的博客 1268

Java变量与运算符

关于Java的文章我以后会通过阶段性的文章来对自己学到的知识进行总结性的文章,所以文章的篇幅可能会显得比较长,但是我会尽力让文章写的逻辑清晰。

lvzihao1314的博客 1265

【java语言基础③】Java编程基础——Java中的变量、运算符

变量:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在内存单元中,每个内存单元都用一个标识符标识,这些用于标识内存单元的标识符就称为变量,内存单元中存储的数据就是变量的值。

weixin_73582152的博客 1130

Java基础2:常量变量以及运算符

常量变量以及运算符这些也是我们学习Java必不可少的一部分基础知识!最后的一点是包机制,有利于区别类名的命名空间,更好的组织类。

qq_64004825的博客 1557

Java中变量和运算符的基本知识点

一个变量名只包含数字、字母、下划线数字不能开头变量名大小写表示的含义不同变量名要具有描述性变量名不易使用拼音,词性推荐使用名词变量命名推荐使用小驼峰命名法变量名的长度没有限制小驼峰命名法当一个变量名由多个单词组成的时候,除了第一个单词之外,其他单词首字母都大写。...

weixin_60510462的博客 1243
上一篇: Java入门(二):注释和基本数据类型
下一篇: Java入门(四):运算符优先级、关键字与保留字
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值