day7

数据类型

变量

Java是强语言类型,每个变量都必须声明其类型。

Java变量是程序中最基本的存储单元,要素包括:变量名,变量类型,作用域。

注意:

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  2. 变量名必须是合法标识符。
  3. 变量声明是一条完整的语句,因此每个声明都必须以分号结束。
public static void main(String[] args) {
        //int a=1,b=2,c=3;不建议,应保证程序的可读性
        int a=1;
        int b=2;
        int c=3;
    	String name = "BB";
        char x = 'x';
        double pi = 3.14;
    }

变量作用域

类变量

//类变量 static
    static double salary = 2500;
 //属性:变量

实例变量

 //实例变量:从属于对象;如果不自行初始化,将变成这个类型的默认值  0或者0.0  初始化为u0000
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

局部变量

	//main方法
    public static void main(String[] args) {

        //局部变量:使用之前必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //变量类型 变量名字 = new Demo08()
        Demo08 demo08 = new Demo08();
        System.out.println(demo08.age);
        System.out.println(demo08.name);

        System.out.println(salary);//类变量

    }

    //其他方法
    public void add(){

    }

常量

初始化后不能再改变值,可理解为特殊变量。在程序运行中,不允许被改变。

final 常量名 = 值;//常量名一般用大写字符

//final为修饰符,不存在先后顺序,即static final和final static一样
    static final double PI = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);

变量名规范

  1. 所有变量、方法、类名:见名知意
  2. 除常量外,变量均遵从首字母小写和驼峰原则:除了第一个单词外,后面单词的首字母都大写,例:monthSalary
  3. 常量:全部使用大写字母,单词之间用下划线:MAX_VALUE
  4. 类名:首字母大写和驼峰原则:GoodMan
  5. 方法名:首字母小写和驼峰原则:runRun()

运算符

算术运算符:+ ,- ,* ,/ ,%(取余),++ (自增),–(自减)

赋值运算符:= ,例: int a = 10; —> 把10赋值给a

关系运算符:> ,< ,>= ,<= ,==(Java中为等于),!=(不等于),instanceof

逻辑运算符:&&(与),||(或),!(非)

位运算符(只了解):& ,| ,^ ,~ ,>> ,<< ,>>>

条件运算符:? ,:

扩展赋值运算符:+= ,-= ,*= ,/=

算术运算符

public static void main(String[] args) {
        //二元运算符
        //ctrl + D :复制当前到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/(double)b);//0.5 //强制转换
        }

赋值运算符

public static void main(String[] args) {
        long a = 1231232123123123L;
        int b= 123;
        short c = 10;
        byte d= 8;

        System.out.println(a+b+c+d);//1231232123123264  
        //long类型     若一个数为long,则结果类型也为long;
        System.out.println(b+c+d);//141
    	//int类型        若没有long,则结果都为int,无论是否有int
        System.out.println(c+d);//18
    	//int类型
    }

关系运算符

public static void main(String[] args) {
        //关系运算符返回的结构:正确或错误      用布尔值
        //if

        int a = 10;
        int b = 20;
        int c = 21;

        System.out.println(c%a);//1
    	// c/a --> 21/10=2...1
        //取余,模运行

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
public static void main(String[] args) {
        // ++自增   --自减   :一元运算符
        int a = 3;
        int b = a++; //执行完这行代码后,先给b赋值,再自增
        //a++ a = a + 1

        System.out.println(a);//4
        //a++ a = a + 1
        int c = ++a;//执行这行代码前,先自增,再给c复制赋值

        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5

        //幂运算 2^3 = 8  很多运算会使用工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);//8.0
    }

逻辑运算符

public static void main(String[] args) {
        //与(and)   或(or)   非(取反)
        boolean a =true;
        boolean b =false;

        System.out.println("a && b: "+(a && b));//flase
        //逻辑与运算:两个变量都为真,结果才为真
        System.out.println("a || b: "+(a || b));//true
        //逻辑或运算:两个变量有一个为真,则结果才为真
        System.out.println("! (a && b) :"+!(a && b));//true
        //如果是真,则变为假,如果是假,则为真

        //短路运算:在&&运算时,若第一项为假,则直接判定,不再进行其他运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);//flase
        System.out.println(c);//5,短路造成没有运算
    }

位运算符

/*
A = 0011 1100
B = 0000 1101

A&B = 0000 1100 两个为1才为1,否则为0
A/B = 0011 1101 两个0才为0,否则为1
A^B = 0011 0001 亦或:相同时为0,不同时为1
~B = 1111 0010 取反

2*8 = 16   2*2*2*2
效率极高
<<左移  *2

>>右移  /2

0000 0000       0
0000 0001       1
0000 0010       2
0000 0011       3
0000 0100       4
0000 1000       8
0001 0000       16

*/
public static void main(String[] args) {
    int a =10;
    int b =20;

    a+=b;//a = a + b
    a-=b;//a = a - b

    System.out.println(a);//10

    //字符串连接符  + ,String
    System.out.println(a+b+"");//30
    System.out.println(""+a+b);//1020,""顺序在前时,仅仅进行拼接
}

条件运算符

//三元运算符
public static void main(String[] args) {
    // x ? y : z
    //如果x==true,则结果为y,否则结果为z

    int score = 50;
    String type = score < 60 ?"不及格":"及格";//必须掌握
    //if
    System.out.println(type);

}
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值