我的Thinking in Java学习笔记(五) (zt)

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情
  流程控制
   java中的流程控制语句有 if-else  whlie  do-whlie  for   switch-case  但是没有提供goto,他在java中是保留字,不是关键字(以后可能会有哦~)
   true和false
    java中不支持用数字表示boolean值,如果你一定要使用,请先以表达式将他转换为boolean值,例如if(a==0)
   if-else
    这个流程控制语句恐怕是我们最常用的了,其中else可有可无可以使用
    
if(boolean)                                                      if(boolean)
     statement                                                       statement
                                                                           else
     或者                                                                   statement

    其中statement可以是一个单独的语句,也可以是好几个语句组成的复合语句,当使用复合语句的时候一定要用大括号括起,而单独的语句,可适可不适
    举个使用的例子吧
     
 public class test
      {
       public static void main(String args[])
       {
        int i=0;
        if(i>=0)//
这里需要注意的是千万不要加;号
        {
         System.out.println("i>=0");
        }
        else
        {
         System.out.println("i<0");
        }
       }
      }
   return
     关键字return的作用:指明函数需要传回的值,并且立即传回。这里需要知道2点,返回值的类型的表达范围要等于或者小于函数的返回类型,例如,函数返回值是int,你如果返回一个double的数值,编译器就会抱错,反之,则不会
     
public class test
     {
      public static double go()
      {
       if(1>0)
       {
        System.out.println("hello");
        return 100l;//返回一个long类型的100
        //!System.out.println("hello");注意在return的后面不可以再加任何语句,return就是一个程序块的终结点
       }
       else
        return 100f;//返回一个flout类型的100//注意使用了if-else分别来返回一个值的时候,切记在if和else后面都要加上return
      }
      public static void main(String args[])
      {
       System.out.println(go());
      }
     }
     你还可以使用不加返回值的return;来跳出函数,但是注意,如果你要使用这样的方法,那么函数的返回值类型那里一定要是void
   迭代         
    while  do-while  for 这几组关键字用来控制循环,他们有的时候也会被归结在迭代语句中。
   while
     例子  while(boolean)
       {
        //......
       }//持续执行内部代码,直到让boolean变成false为止 
   do-while
             例子   do
                 //........
                while(boolean)
                 //......
             他和while的唯一差别是,do-while至少会被执行一次,哪怕一开始都不满足true运行的条件,至少执行一次的语句要放在do的里面
     for
         for循环会执行如下几个步骤 1、初始化变量 2、进行条件判断 3、每执行完一次,进行一次步进
         例如for(int i=0;i<10;i++)会先初始化i,判断i是否小于10,如果小于执行for循环体内的语句,并且把i的值加1,直到i大于10的时候,退出。其中的3步都可以为空的,即for(;;),则他的意义和while是一样的。
         你还可以在for语句中定义多个变量,但是他们的类型一定要一样,这种定义的方法式能且只能在for中使用
      for(int i=0,j=1;i<10&&j!=11;i++,j++)
         要注意,在for括号里面定义的变量,只能在for循环的表达控制式中使用和存活,而不是在循环体的大括号内的!
   break和continue
    在迭代语句中,你可以使用break和continue来控制循环语句,他们的唯一区别就是,break会跳出循环,不去执行剩余部分,而continue会停止当前的迭代,回到循环的启示出,开始下一个迭代。
       public class test
       {
        public static void main(String args[])
        {
         for(int i=0;i<100;i++)//2
         {
          if(i==88)
           break;//这句话导致i的值永远不会大于88,因为如果大于88的话,程序就会跳出,到1的哪个位置了
          if(i%2!=0)
           continue;//当i是个偶数的时候,程序才会向下执行,打印出i的值,如果不是偶数,则跳到2处,把i++再重新循环
          System.out.println(i);
         }//1
        }
       }
      其实哪个i==88是个废话,完全可以在for循环中就能控制,我只不过举了个例子而已,呵呵
   臭名朝著的"goto"
     从第一个程序语言诞生的时候就有goto这个关键字,然而,由于大多数程序员的使用不当,而引发出来很多问题。这不是goto的问题,就想枪支一样,好人用了就是武器,坏人用了就是凶器~嘿嘿~
     java中没有goto,但是有和goto功能类似的语句-----标记,可以执行类似跳跃功能,但不是真正的跳跃,而是一种中断迭代语句的方式他可以和break、continue共用,共用的效果是可以中断所有进行中的嵌套循环,直到label的所在处。标记其实就是个后面紧跟冒号的标示符,例如  thisislabel :。在java中唯一能放label的地方就是迭代语句开始之前,请不要在label和迭代语句之间加入任何内容。
     使用规则
      1、continue会跳跃到他所在的内层循环顶端,继续执行
      2、contine label会跳跃到label所在的位置,然后重新进入循环
      3、break会跳离循环
      4、break label会跳离label所在的位置
      while 中使用label例子
      public class test
      {
       public static void main(String args[])
       {
        int i=0;
        oneLabel:
        while(true)
        {
         System.out.println("this is while method");
         while(true)
         {
          i++;
          System.out.println(i);
          if(i==1)
          {
           System.out.print(i);
           System.out.println("continue");
           continue;
          }
          if(i==3)
          {
           System.out.print(i);
           System.out.println("continue oneLabel");
           continue oneLabel;
          }
          if(i==5)
          {
           System.out.print(i);
           System.out.println("break");
           break;
          }
          if(i==7)
          {
           System.out.print(i);
           System.out.println("break oneLabel");
           break oneLabel;
          }
         }
        }
       }
      }         
      for使用label例子
      public class test
      {
       public static void main(String args[])
       {
        int i=0;
        oneLabel:
        while(true)
        {
         System.out.println("this is while method");
         for(;i<8;i++)
         {
          System.out.println(i);
          if(i==1)
          {
           System.out.print(i);
           System.out.println("continue");
           continue;
          }
          if(i==3)
          {
           System.out.print(i);
           System.out.println("continue oneLabel");
           i++;//continue oneLabel会跳出for循环,则没有进行一次完整的迭代,所以累加不会发生,为了祢补,我们在这里把i+1
           continue oneLabel;
          }
          if(i==5)
          {
           System.out.print(i);
           System.out.println("break");
           i++;//break会跳出for循环,则没有进行一次完整的迭代,所以累加不会发生,为了祢补,我们在这里把i+1
           break;
          }
          if(i==7)
          {
           System.out.print(i);
           System.out.println("break oneLabel");
           break oneLabel;
          }
         }
        }
       }
      }
      大家要记住!在java中唯一需要使用label的理由就是:在嵌套循环中想要让break和continue越过一个以上的嵌套
    switch
      switch(i)
      {
       case 0:System.out.println("0");
          break;
       case 1:System.out.println("1");
          break;
       case 2:System.out.println("2");
          break;
       case 3:System.out.println("3");
          break;
       default:System.out.println("default");
      }
      switch是一种选择语句,他会根据一个表达式产生的值,挑出一个符合条件的来执行。每个case后面都会以一个break来结束,如果要是没有break的话,他会找到符合条件的语句后,继续执行下面的句子,直到遇到break的时候才停止需要注意的地方,case后面的值不可以重复,如果没有符合的,系统会自动执行default。还有,swtich只能判断整数基本数据类型 ,字符串或者浮点数是不行的
    习题解答
      5、写出一个程序,让他在打印到47的时候停止(范围100),利用关键字break,在试试return
      public class test
      {
       public static void main(String args[])
       {
        for(int i=0;i<100;i++)
        {
         if(i<47)
         System.out.println(i);
         else
          break;//return;
        }
       }
      }
      7、撰写程序,产生24个随机数,针对每个数值,使用if-else语句来区分是否大于、小于、等于下一个随机数
      import java.math.*;
      class test
      {
       public static void main(String args[])
       {
         int num[]=new int[25];
         
         for(int i=0;i<25;i++)
         {
          num[i]=(int)(Math.random()*100);
         }
          for(int i=0,j=1;i<25&&j<25;i++,j++)
         {
          System.out.println(j+"   "+num[i]+"   "+num[j]);
          if(num[i]>num[j])
          {
           System.out.println(num[i]+">"+num[j]);
          }
          if(num[i]<num[j])
          {
           System.out.println(num[i]+"<"+num[j]);
          }
          if(num[i]==num[j])
          {
           System.out.println(num[i]+"=="+num[j]);
          }
          
         }
       }
      }
      至于第8题,由于我们还没有学习到事件的监听,所以这个题做起来的意义不大 
      其他的题目也很简单。有什么不会的可以问我
数据采集卡架构与PCIe优化设计详解 数据采集卡(DAQ)作为工业自动化中的关键设备,其核心在于模数转换(ADC)和数字信号处理技术。现代系统普遍采用PCIe总线架构,通过DMA传输和时钟同步技术实现高速数据采集。在信号调理环节,可编程增益放大器(PGA)和抗混叠滤波器确保信号质量;而Σ-Δ型ADC则提供高达24位的分辨率。实际应用中,从电力监测到机床振动分析,数据采集卡需要结合具体场景优化配置。通过合理的PCB布局和EMI防护设计,可以有效提升系统在工业环境中的可靠性。 阅读详情

相关推荐

Coding Plan:程序员真实工作的可执行编码决策框架

Coding Plan 是一种面向工程实践的编码决策方法论,它超越传统学习路径,聚焦于代码在真实业务系统中的上下文对齐、影响控制与可演进性保障。其核心在于将模糊的开发直觉转化为可度量、可验证、可协作的日常动作,涵盖目标对齐、上下文锁定、验证闭环、协作契约和演进预留五大锚点。结合2026年AI辅助编码新范式,它强调将大模型作为‘上下文翻译器’而非代码生成器,并通过分钟级工作块、技术债主动发行、可观测性前置等机制,显著提升交付确定性与系统长期健康度。本文详解该框架的底层逻辑与落地实践。

weixin_33326218的博客 438

Thinking in Java学习笔记(2)(zt)

打造第一个java程序? 名称的可视性???????? 名称问题有些人觉得不是什么大问题,我开始也觉得那不是个什么大问题,但是当你有一天写了很多的类时,你就发现,名称其实真的很重要,假如你有这么一个类,他需要调用其他几个类, 当这几个被类名相同时,问题就出现了,那么???????? 怎么区分他们,并且使他们的名称不冲突呢?毕竟我们不可能把每个声明过的类的名字一一记住,以便在下次声声明其他名称时,加

A Little Bit More...... 917

【BLE】HID设备开发实战:从自拍杆到复合设备的蓝牙控制方案

本文深入解析了BLE HID(低功耗蓝牙人机接口设备)的开发实战,从蓝牙自拍杆的工作原理切入,详细阐述了HID Report Map的设计与实现。通过拆解自拍杆、键盘、鼠标等案例,指导开发者如何利用BLE的低功耗与即插即用特性,构建从单一功能到键盘鼠标复合设备的完整蓝牙控制方案。

weixin_29159613的博客 465

Thinking in Java学习笔记(三)(zt)

?第三章?? 控制程序流程???在java的世界中,对象和数据的处理是通过运算符,而选择和判断则是靠控制语句来实现的???使用java运算符?????运算符的2个用处,1、运算符接受引数,并且产生新值,例如 int a=1+1;2、运算符也可以改变操作数的值 例如 i++;?????大多数的运算符都是可以作用与基本数据类型之上的,但是=、==、!=是例外,他们可以作用于任何对象之上。?????

A Little Bit More...... 895

python 爬取携程全国旅游景点信息-2024.4.13

携程网是中国领先的在线旅行服务公司,提供酒店预订、机票预订、旅游度假、商旅管理等服务。携程网上有大量的旅游景点和酒店信息,这些信息对于旅行者和旅游业者都有很大的价值。通过爬虫技术,我们可以从携程网上获取这些信息,并进行数据清洗、数据分析、数据可视化等操作,从而得到有用的洞察和建议。

britlee的博客 1万+

看完这篇爽文我终于学会了示波器(一)

示波器基础篇的介绍,希望对你有用,下次分享一下如何测试。

qq_45508321的博客 973

我的Thinking in Java学习笔记(六)(zt)

???我个人理解初始化和清理的关系就是吃饭和上厕所,正是有了初始化的对象,我们才能使用清理。但是为什么要清理呢?想象一下一个人光吃不拉,是个什么情况?:)难道我们的程序也要像吃饭一样光产生对象,而不去清理使用完毕的对象?任由我们的对象堆积如山,占用系统资源????以构造函数确保初始化的进行??????什么构造函数?构造函数就是一种特殊的函数,当对象产生时,他会被系统自动的调用起来,并且这个函数名称

A Little Bit More...... 1021

java写一个多人线上聊天室

课程作业谔谔

weixin_51614848的博客 1136

我的Thinking in Java学习笔记(四) (zt)

   逻辑运算符     逻辑运算符 AND(&&)?? OR(||)? NOT(!)? 都会得到一个boolean值,且他们只能用于boolean身上。逻辑表达式中的boolean无法使用类似于c/c++中的数值代替。注意,boolean被用于一个预期会出现string的地方,其值会自动转换为适当的文本形式,并且假如2个比较的基本数据类型不相同,也是可以比较的~例如10和10.0d,结果也是会返

A Little Bit More...... 1096

从2-RSS-1U并联踝关节到双足机器人动态行走:雅可比矩阵与力矩控制实践

本文深入探讨了2-RSS-1U并联踝关节在双足机器人动态行走中的关键作用,详细解析了其设计原理、雅可比矩阵的应用及力矩控制实践。通过优化几何参数和控制算法,实现了低转动惯量、高刚度和紧凑设计,显著提升了机器人的行走稳定性和能量效率。文章还分享了从仿真到实物的跨越经验及未来优化方向。

weixin_42641998的博客 594

【知识分享】什么是同轴传输线结构?

同轴传输线的几何形状由中心导体组,嵌在介电材料(Dielectric)中,并且,被连续的外导体所包围,也被称为屏蔽(Shield)。内外导体有相同的几何中心轴,因此得名同轴(Coaxial)。

一只豌豆象的博客 2372

我的Thinking in Java学习笔记(七) (zt)

     清理:终结与垃圾回收        这里要明白这么几点        1、垃圾回收器只能回收由new产生的对象,如果你使用或产生了非new产生的对象,垃圾回收器是不知道如何把他清理掉的 。这个时候就要使用到finalize()。        2、垃圾回收器的运做方式是这样的,当垃圾回收器打算开始释放你的对象所占用的资源时,会先调用finalize(),并且在下一次垃圾回收动作放生的时候

A Little Bit More...... 932

教你如何阅读Autosar代码(6):常量变量定义

编译器抽象应该为常量的声明和定义定义CONST宏。编译器抽象应该定义VAR宏来声明和定义变量。memclass:常量本身的分类;memclass:变量本身的分类;vartype:变量的类型;type:常量的类型;

wdconan001的博客 958

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 284

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346

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

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

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 126

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 196

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 492

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 631

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 359

SecureRandom做随机源,这个Java随机字符串工具类有3个方法

本文分享一款JDK17环境下的Java随机字符串工具类,内置3个开箱即用的方法,全部采用SecureRandom加密安全随机源,不存在弱随机、可预测、取模偏差等问题。工具类支持默认62字符集随机串、纯数字随机串、自定义字符集随机串三种生成模式,支持Unicode码点级别的字符集处理,兼容Emoji等增补字符,边界处理严格,异常信息明确,适合验证码、邀请码、盐值、随机口令、短链码等场景,源码可直接复制使用。

Java后端 | AI智能体应用实战派 | 电脑技能行家 298

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 136

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 328

TRingBuffer两端都能增删(快递站版)

TRingBuffer 是一个支持两端增删、下标访问且容量动态增长的环形双端队列。它通过无符号索引的永不归零设计,利用减法自动模运算实现空满判断与元素计数,避免了传统环形缓冲浪费格子的问题。内部以票号(索引)标记首尾,扩容时重排元素为连续存储,保证 O(1) 操作与高缓存效率。虽不线程安全,但其高效性使其成为游戏开发中事件队列、命令缓冲等场景的理想选择。

u013768914的博客 223
上一篇: 我的Thinking in Java学习笔记(四) (zt)
下一篇: 我的Thinking in Java学习笔记(六)(zt)
PerseusYan
博客等级 码龄23年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值