黑马程序员_Java基础语法1

------- android培训java培训、期待与您交流! ----------


Java基础语法1


一:关键字

1.定义:被Java语言赋予了特殊含义的单词

2.特点:关键字中的所有字母都为小写

二:标示符

1.由26个英文字母大小写,数字:0-9   符号:_$组成

2.定义合法的标示符规则:
(1).数字不可以开头。

(2).不可以使用关键字。

3.Java中的名称规范:
(1).包名:多单词组成时所有字母都小写。

(2).类名和接口名:多单词组成时,所有单词的首字母大写。

(3).变量名和函数名:多单词组成时,第一个单词的首字母小写,第二个单词开始每一个单词首字母大写。

(4).常量名:所有字母都大写。多单词时每个单词下划线连接。

4.Java中的注释格式:
(1).单行注释://注释文字

(2).多行注释:/*注释文字*/

(3).文档注释:/**注释文字*/

三:进制的基本转换


1.二进制和十进制之间的转换:

(1).十进制--->二进制:
原理:对十进制数进行除二运算
举例:6的二进制
(2).二进制--->十进制:
原理:二进制乘以2的过程
举例:110的十进制
2.二进制--->十六进制:四个二进制位就是一个十六进制位

3.二进制--->八进制:

4.二进制的加法运算:

5.负数的二进制表现形式:其实就是对应的正数二进制取反加1,取反就是将二进制的1变成0,0变成1。
         举例:以6=110为例
      
有个结论:负数的最高位都是1

四:数据类型

类型转换:

1.自动类型提升:byte b = 3;

int x = 4;

x = x + b; // b会自动提升为int类型进行运算。


2.强制类型转换:byte b = 3;

b = b + 4; // 报错

b = (byte)b + 4; // 强制类型转换,强制将 b + 4 的结果转换为byte类型,再赋值给b。


五:运算符


1.算数运算符:

(1).如果对负数取模,可以把模数负号忽略不计,但被模数是负数就另别论。


(2). b = a++和b = ++a的区别:a++是先赋值再加1,而++a是先加1再值。


(3).字符串数据和任何数据使用,最终都会变成字符串。


(4).转义字符:通过 \ 来转变后面字母和符合的含义。

     \n:换行; \b:退格(相当于Backspace键); \r:按下回车键;

     \t:制表符(相当于Tab键);


2.赋值运算符:

short s = 3;

s+=2;和 s = s+2; 的区别:

(1).s = s + 2;//编译失败,是因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。


(2).s+=2;//编译通过,因为+=运算符在给s赋值时,自动完成了强转操作


3.逻辑运算符:用于连接boolean类型的表达式。

(1)."&"和"&&"的区别:

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。


(2).异或(^)与或(|)的不同之处是:

当左右都为true时,结果为false。


4.位运算符:位运算是直接对二进制进行运算。

(1).左移(<<):空位补0,被移除的高位丢弃,空缺位补0。

     

(2).右移(>>):被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,空缺位补1。

      

(3).<<:其实就是乘以2的移动的位数次幂。

>>:其实就是除以2的移动的位数次幂。


(4).无符号右移(>>>):被移位二进制最高位无论是0或是1,空缺位都是用0补。


(5).&:二进制位进行&运算,只有1&1时结果是1,否则是0。

     

(6).|:二进制位进行 | 运算,只有 0 | 0 时结果是0,否则是1。

      

(7).^:任何相同二进制位进行^运算,结果是0;1^1=0,0^0=0

不相同二进制位^运算结果是1; 1^0=1,0^1=1

一个数异或同一个数两次,结果还是那个数。

     

5.三元运算符:

(1).格式:(条件表达式)?表达式1:表达式2;


(2).如果条件为true,运算后的结果是表达式1;


(3).如果条件为false,运算后的结果是表达式2;


六:程序流程控制


1.判断结构:

(1).if语句:

a.if(条件表达式)

   {执行语句;}


b.if(条件表达式)

   {执行语句;}

   else

   {执行语句;}


c.if(条件表达式)

   {执行语句;}

   else if(条件表达式)

   {执行语句;}

   ......

   else

   {执行语句;}


(2).if语句的特点:

a.每一种格式都是单条语句。


b.第二种格式if  else  结构的简写格式:变量=(条件表达式)?表达式1:表达式2;


c.三元运算符:

                     好处:可以简化if  else 代码。

                     弊端:因为是一个运算符,所有运算完必须要有一个结果。


d.条件表达式无论写成什么样子,只看最终的结构是否是true或者false。


2.选择结构:

(1).switch(表达式)

     {

        case 取值1:

                         执行语句;

                          break;

        case 取值2:

                         执行语句;

                         break;

        ......

        default:

                   执行语句;

                   break;

      }


(2).switch语句的特点:

a.switch语句选择的类型只有四种:byte short int char。


b.case之间与default没有顺序,先执行第一个case,没有匹配的case执行default。


c.结束switch语句的两种情况:遇到break,执行到switch语句结束。


d.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执    行的语句,直到遇到break或者switch结尾结束。


e.if和switch语句很像。具体什么场景下,应用哪个语句呢?

   如果判断的具体数值不多,而是符合byte,short,int,char这四种类型,虽然两个语句都      可以使用,建议使用switch语句,因为效率稍高。其他情况下,对区间判断,对结果      为boolean类型判断,使用if,if的使用范围更广。


3.循环结构:

(1).while语句:

     while(条件表达式)

     {

             (循环体)执行语句;

     }


(2).do while语句:

    do

    {

          执行条件;

    }while(条件表达式);


(3).while和do while的区别:

     while:先判断条件,只有条件满足才执行循环体。

     do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。简单一句话:do while无论条件是否满足,循环体至少执行一次。


(4).for语句:

   for(初始化表达式;循环体条件表达式;循环后的操作表达式)

   {执行语句;}


(5).for语句的特点:

a.for里面的连个表达式运作的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续循环判断循环条件,重复这个过程,直到条件不满足为止。


b.while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。如果需要定义循环增量,用for更为合适。


c.变量有自己的作用域,对于for来讲:如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效。for语句执行完毕,该变量在内存中被释放。


(6).总结:什么时候使用循环结构?

       当要对某些语句执行很多次时,就使用循环结构。


(7).无线循环的最简单表现形式:

for(;;){}

while(true){}


(8).累加思想:

      原理:通过变量记录住每次变化的结果,通过循环的形式,进行累加动作。


(9).计数器思想:

      原理:通过一个变量记录住数据的状态变化,也许通过循环完成。


(10).练习题:

a.


b.


c.

(11).其他流程控制语句:

a.break语句:应用范围:选择结构和循环结构。


b.continue语句:应用于循环结构。


c.这两个语句离开应用范围,存在是没有意义的。


d.这两个语句单独存在下面都不可以有语句,因为执行不到。


e.continue语句是结束本次循环继续下次循环。


f.标号的出现,可以让这两个语句作用于指定的范围。




基于Swin Transformer与ASPP模块的图像分类系统设计与实现 本文介绍了一种结合Swin Transformer与空洞空间金字塔池化(ASPP)模块的高效图像分类系统。该系统通过融合Transformer的全局建模能力和ASPP的多尺度特征提取优势,显著提升了模型在复杂场景下的分类性能。 模型架构创新 系统核心采用Swin Transformer作为骨干网络,其层次化窗口注意力机制能高效捕获长距离依赖关系。在特征提取阶段,创新性地引入ASPP模块,通过并行空洞卷积(膨胀率6/12/18)和全局平均池化分支,实现多尺度上下文信息融合。ASPP输出经1x1卷积降维后与原始特征拼接,有效增强了模型对物体尺寸变化的鲁棒性。 训练优化策略 训练流程采用Adam优化器(学习率0.0001)和交叉熵损失函数,支持多GPU并行训练。系统实现了完整的评估指标体系,包括准确率、精确率、召回率、特异度和F1分数等6项指标,并通过动态曲线可视化模块实时监控训练过程。采用早停机制保存最佳模型,验证集准确率提升可达3.2%。 工程实现亮点 1. 模块化设计:分离数据加载、模型构建和训练流程,支持快速迭代 2. 自动化评估:每轮训练自动生成指标报告和可视化曲线 3. 设备自适应:智能检测CUDA可用性,无缝切换训练设备 4. 中文支持:优化可视化界面的中文显示与负号渲染 实验表明,该系统在224×224分辨率图像分类任务中,仅需2个epoch即可达到92%以上的验证准确率。ASPP模块的引入使小目标识别准确率提升15%,特别适用于医疗影像等需要细粒度分类的场景。未来可通过轻量化改造进一步优化推理速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值