【探索Java编程:从入门到入狱】Day3

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

0x1 前言

0x2 Java 基础语法

1.1、基本语法

1.2、Java 标识符

1.3、Java 修饰符

1.4、Java 数组

1.5、题目练习-2160 · 打印 "Hello Java"

0x3 题目练习-2863 · 是否为同名同姓的两个人

0x4-拓展:流程控制语句-顺序结构


0x1 前言

练习Java代码平台这里还是给师傅们推荐炼码https://www.lintcode.com/这个平台不错,有知识点学习以及代码学习。题目位置如下:LintCode 炼码 - ChatGPT!更高效的学习体验!

0x2 Java 基础语法

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
public class hello_world {
    public static void main(String[] args) {
        /*
        *第一个Java程序
        * 输出hello world
        * */
        //输出hello world
        System.out.println("hello world");
    }
}

运行过程解释:

1.1、基本语法

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello hello 是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

1.2、Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合。
  • 关键字不能用作标识符。
  • 标识符是大小写敏感的。
  • 合法标识符举例:age$salary_value__1_value
  • 非法标识符举例:123abc-salary

1.3、Java 修饰符

像其他语言一样,Java 可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

在后面的章节中我们会深入讨论 Java 修饰符。

1.4、Java 数组

数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。

1.5、题目练习-2160 · 打印 "Hello Java"

描述:

这是 Java 入门练习的第一个程序,我们要做的就是把 “Hello Java” 打印到控制台。

我们需要这样一段代码来实现:

public class Solution {
    public static void main(String[] args) {
        
    }
}

其中 第一行的 Solution 代表类名,第二行的 public 代表访问修饰符,static 代表关键字,void 代表返回值类型,main 代表方法名,String 代表 String 类,args 代表字符串数组。这些东西你只需要记住就好,我们要做的就是要使用输出语句 System.out.println(""); 打印 “Hello Java”,输出语句写在 main 方法中。

解答:

public class Solution {
    /* Your first java code
     * print Hello Java to console
     */
    public static void main(String[] args) {
        // write your code here
        System.out.println("hello world");
    
    }
}

0x3 题目练习-2863 · 是否为同名同姓的两个人

描述:

现在学校编写一个程序,判断两个人是否为 同名同姓的两个人。学校中的人员角色分为学生和老师两种,我们规定在同一个角色群体中,名字相同但年龄不同的两个人为 同名同姓的两个人。请在 Solution 类的 determineUserName 方法中实现该功能。

解答:

用来做javaSE的巩固还不错,但题目不太严谨,应该是同类下:同姓名、不同年龄判为true,其他一律判为false。

这个题目总共四个类:

1、Solution类:

package 炼码;

public class Solution {

    public boolean determineUserName(Object Object1, Object Object2) {
        //检查对象是否为学生
        if (Object1 instanceof Student && Object2 instanceof Student){
            //如果都是学生,则转换成学生对象进行比较
            Student student1 = (Student) Object1;
            Student student2 = (Student) Object2;
            //判断姓名是否相等
            if (student1.getName().equals(student2.getName())){
                //如果相等,进一步判断
                if (student1.getAge()== student2.getAge()){
                    return false;
                }
            }else {
                return true;
            }
        }
        //检查是否是老师
        if (Object1 instanceof Teacher && Object2 instanceof Teacher){
            //如果都是老师,则转换成老师对象进行比较
            Teacher teacher1 = (Teacher) Object1;
            Teacher teacher2 = (Teacher) Object2;

            //判断姓名是否相同
            if (teacher1.getName().equals(teacher2.getName())){
                //如果姓名相同,进一步判断
                return false;
            }else {
                return true;
            }
        }
        //前学生后老师
        //前老师后学生
        //前后都不在老师和学生中
        //其他情况
        //均返回false
        return false;
    }
}

2、Student 类

package 炼码;

public class Student {
    private int age;
    private String name;

    public Student() {

    }

    public Student(String name, int age) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

3、Teacher类

package 炼码;

public class Teacher {
    private int age;
    private String name;

    public Teacher() {

    }

    public Teacher(String name, int age) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

4、Main 类

package 炼码;
import java.io.FileReader;
import java.io.PrintStream;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            String inputPath = args[0];
            String outputPath = args[1];
            Scanner in = new Scanner(new FileReader(inputPath));
            PrintStream ps = new PrintStream(outputPath);

            // get data
            String str1 = in.nextLine();
            String str2 = in.nextLine();
            String strArr1[] = str1.split(" ");
            String strArr2[] = str2.split(" ");
            Object oj1 = null;
            Object oj2 = null;
            if ("student".equals(strArr1[0].toLowerCase())) {
                oj1 = new Student(strArr1[1], Integer.parseInt(strArr1[2]));
            }
            if ("student".equals(strArr2[0].toLowerCase())) {
                oj2 = new Student(strArr2[1], Integer.parseInt(strArr2[2]));
            }
            if("teacher".equals(strArr1[0].toLowerCase())) {
                oj1 = new Teacher(strArr1[1], Integer.parseInt(strArr1[2]));
            }
            if("teacher".equals(strArr2[0].toLowerCase())) {
                oj2 = new Teacher(strArr2[1], Integer.parseInt(strArr2[2]));
            }
            Solution solution = new Solution();
            boolean rs = solution.determineUserName(oj1, oj2);
            ps.print(rs);
            ps.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

0x4-拓展:流程控制语句-顺序结构

顺序结构

package heima;

public class demon_1 {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/580264.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis分布式锁 - 基于Jedis和LUA的分布式锁

先基于单机模式,基于Jedis手工造轮子实现自己的分布式锁。 首先看两个命令: Redis 分布式锁机制,主要借助 setnx 和 expire 两个命令完成。 setnx命令: setnx 是 set if not exists 的简写。将 key 的值设为 value ,当且仅当…

跨设备自动化协同提效新利器!边缘自动化流程编排工具

痛点剖析 随着企业生产环境的日益复杂化,不同生产设备间的协调性问题尤为凸显。 1、不同设备往往基于各自的技术标准、通信协议和操作系统设计,这使得它们之间的数据交换和指令传递存在显著的障碍。 2、技术上的不兼容性导致设备间难以实现无缝对接和…

Matplotlib是什么?

一、Matplotlib是什么? Matplotlib是一个Python语言的2D绘图库,它非常广泛地用于数据的可视化。以下是一些主要特点: 多功能性:它允许用户创建各种静态、动态或交互式的图表,如线图、散点图、直方图等。跨平台性&…

基于MSP430F249的电子钟仿真(源码+仿真)

目录 1、前言 2、仿真 3、程序 资料下载地址&#xff1a;基于MSP430F249的电子钟仿真(源码仿真&#xff09; 1、前言 基于MSP430F249的电子钟仿真&#xff0c;数码管显示时分秒&#xff0c;并可以通过按键调节时间。 2、仿真 3、程序 #include <MSP430x24x.h> #def…

Spring Boot项目中的ASCII艺术字

佛祖保佑&#xff1a; ${spring-boot.formatted-version} ———————————————————————————————————————————————————————————————————— // _ooOoo_ …

tomcat系统架构及运用

文章目录 下面是Tomcat架构的详细解析&#xff1a;1. **Server&#xff08;服务器&#xff09;**2. **Service&#xff08;服务&#xff09;**3. **Container&#xff08;容器&#xff09;** - 分层结构4. **Connectors&#xff08;连接器&#xff09;**5. **类加载器&#xff…

数据集笔记:处理北大POI 数据:保留北京POI

数据来源&#xff1a;Map POI (Point of Interest) data - Official data of the contest (pku.edu.cn) windows 下载方法&#xff1a;数据集笔记&#xff1a;windows系统下载北大开放数据研究平台的POI数据-CSDN博客 1 读取数据 1.1 列出所有的文件 dir1D:/data/PKU POI/2…

如何管理约束

本文主要介绍如何管理约束&#xff0c;包括决定何时发生约束检查&#xff0c;如何删除约束&#xff0c;删除和更新父行&#xff0c;插入和更新子行。 1. 约束事务模式 约束事务模式决定何时发生引用违例检查。 对于具有日志记录的数据库 — 即时约束&#xff08;Immediate con…

【笔试强训】Day4 --- Fibonacci数列 + 单词搜索 + 杨辉三角

文章目录 1. Fibonacci数列2. 单词搜索3. 杨辉三角 1. Fibonacci数列 【链接】&#xff1a;Fibonacci数列 解题思路&#xff1a;简单模拟题&#xff0c;要最少的步数就是找离N最近的Fibonacci数&#xff0c;即可能情况只有比他小的最大的那个Fibonacci数以及比他大的最小的那…

【VUE】Vue中实现树状表格结构编辑与版本对比的详细技术实现

Vue中实现树状表格结构编辑与版本对比的详细技术实现 在Vue中&#xff0c;创建一个可编辑的树状表格并实施版本对比功能是一种需求较为常见的场景。在本教程中&#xff0c;我们将使用Vue结合Element UI的el-table组件&#xff0c;来构建一个树状表格&#xff0c;其中包含添加、…

ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析

ICCV 2021 | FcaNet: Frequency Channel Attention Networks 中的频率分析 论文&#xff1a;https://arxiv.org/abs/2012.11879代码&#xff1a;https://github.com/cfzd/FcaNet 文章是围绕 2D 的 DCT 进行展开的&#xff0c;本文针对具体的计算逻辑进行梳理和解析。 f ( u ,…

【MySQL精炼宝库】数据库的约束 | 表的设计 | 聚合查询 | 联合查询

目录 一、数据库约束 1.1 约束类型&#xff1a; 1.2 案例演示&#xff1a; 二、表的设计 2.1 一对一: 2.2 一对多: 2.3 多对多: 2.4 内容小结&#xff1a; 三、新增 四、查询 4.1 聚合查询&#xff1a; 4.1.1 聚合函数&#xff1a; 4.1.2 GROUP BY子句&#xff1a…

linux使用docker 安装mysql redis

linux安装docker https://hub-stage.docker.com/ 前往这里搜索容器来部署。每个容器都有独立的运行环境。 具体安装教程 https://docs.docker.com/engine/install/centos/#install-using-the-repository 检查是否安装成功&#xff1a; sudo docker --version 配置国内镜像加速…

人脸识别概念解析

目录 1. 概述 2. 人脸检测 3. 人脸跟踪 4. 质量评价 5. 活体检测 6. 特征提取 7. 人脸验证 8. 人脸辨识 1. 概述 人脸识别在我们的生活中随处可见&#xff0c;例如在大楼门禁系统中&#xff0c;它取代了传统的门禁卡或密码&#xff0c;提高了进出的便捷性和安全性。在商…

Adfind的使用

Adfind是一个使用C语言写的活动目录查询工具&#xff0c;它允许用户轻松地搜索各种活动目录信息。它不需要安装&#xff0c;因为它是基于命令行的。它提供了许多选项&#xff0c;可以细化搜索并返回相关细节。下面讲解Adfind的参数以及其使用。 参数 执行如下命令即可查看Adf…

ruoyi-nbcio-plus基于vue3的flowable为了适配文件上传改造VForm3的代码记录

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

Flutter笔记:DefaultTextStyle和DefaultTextHeightBehavior解读

Flutter笔记 DefaultTextStyle和DefaultTextHeightBehavior解读 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

PriorityQueue—优先级队列FollowUp

FollowUp大纲&#xff1a; 思维导图&#xff1a; FollowUp PriorityQueue: Q1&#xff1a;但不知道是大根堆化石小根堆 A&#xff1a;Q1 只需要放进去几个元素peek&#xff08;&#xff09;出元素是大的还是小的 下面如果是5就是小根堆10就是大根堆 A&#xff1a;默认是小根…

Github创建远程仓库(项目)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

OPPO Reno10Pro/Reno11/K10手机强解BL刷root权限KSU内核抓包刷机救砖

OPPO Reno10Pro/Reno11/K10手机虽然发布时间并不久&#xff0c;但由于天玑处理器的体质&#xff0c;已经支持强制解锁BL了&#xff0c;该漏洞来自第三方工具适配&#xff0c;支持OPPO天机8100/8200刷机救砖解锁BL不需要等待官方深度测试直接实现。解锁BL后的OPPO Reno10Pro/Ren…
最新文章