【Java】初识Java

news2024/11/25 20:25:19

Java和C语言有许多类似之处,这里就只挑不一样的点来说,所以会比较杂乱哈~


目录

1.数据类型

2.输入与输出

2.1三种输出

2.2输入

2.3循环输入输出

//猜数字小游戏

//打印乘法口诀表

3.方法

//交换两个数(数组的应用)

//模拟登陆(比较字符串)

3.1方法重(chong)载

3.2方法签名 


1.数据类型

1.基本数据类型:8种,byte,char,int,long,float,double,boolean

2.引用数据类型:类,数组,接口,string字符串,枚举类型……

与C语言的不同:

循环:while循环中条件必须为布尔表达式,所以 while(1) 在C语言中可编译在Java种不行,但是while(true)可以;当循环没有写括号时,循环只执行与之最近的代码。

2.输入与输出

2.1三种输出

 public static void main(String[] args) {
       System.out.println("输出且换行");
       System.out.print("输出不换行");
       System.out.printf("%s\n","格式化输出");
   }

2.2输入

需要导入util包,打出Scanner后Java自动提示,回车后自动导入

  public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);//表示从键盘读入
       int a = scan.nextInt();//next+类型表示将要读入数据的类型
       System.out.println(a);
       double f = scan.nextDouble();
       System.out.println(f);
       scan.nextLine();//把回车吃走,否则下面的nextline会读取回车
       String name1 = scan.nextLine();//遇到空格不会结束
       System.out.println(name1);
       String name2 = scan.next();//遇到空格就结束,不会读取回车
       System.out.println(name2);
   }

2.3循环输入输出

Ctrl+D结束循环;Ctrl+C终止程序

public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     while(scan.hasNextInt()){
         int a=scan.nextInt();
         int b= scan.nextInt();
         System.out.println(a+b);
     }
}

//猜数字小游戏

public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     Random random = new Random();
     int randNum = random.nextInt(100);//[0~100)
     //int randNUm = random.nextInt(50)+50;//[50~100)60
     System.out.println("作弊:"+randNum);
     while(true){
         int n = scan.nextInt();
         if(n < randNum){
             System.out.println("猜小了~");
         } else if (n > randNum) {
             System.out.println("猜大了~");
         }else {
             System.out.println("猜对啦");
             break;
         }
     }
 }

//打印乘法口诀表

public static void main(String[] args) {
   for (int i = 1; i <= 9; i++) {
       for (int j = 1; j <= i; j++) {
            System.out.print(i+"*"+j+"="+i*j+" ");
       }
       System.out.println();
   }
}

3.方法

格式:访问修饰限定符  返回值类型  方法名 (形式参数列表){

           方法体代码;

           return 返回值;

}

访问修饰限定符:现阶段直接使用 public static 固定搭配;

注意:方法等同于C语言中的函数;方法是定义在类中的;方法的调用,每次都会在栈上开辟内存;每个方法都有其独立的空间。

//交换两个数(数组的应用)

在C语言中,我们有传值调用和传址调用,其中只有传址调用能够成功交换。在Java中,我们没有指针这一说法,也就是我们无法获取内存中的地址,那该怎么实现交换呢?

答案:传引用类型参数例如数组来交换。

public static void swap(int[] arr){
    int tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
}
public static void main(String[] args) {
    int[] arr = {1, 2};
    System.out.println("交换前:"+arr[0]+" "+arr[1]);
    swap(arr);
    System.out.println("交换后:"+arr[0]+" "+arr[1]);
}

//模拟登陆(比较字符串)

在C语言中我们肯定都写过模拟登陆的题目,其中有一环节:比较输入密码和原密码是否相同。C语言中使用库函数strcmp,Java中使用的是啥呢?

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String password = scan.nextLine();
    if ( password.equals ("123456") ){
        System.out.println("密码正确!");
    }else {
    System.out.println("密码错误!");
    }
}

3.1方法重(chong)载

要求:方法名相同;参数列表不同(个数,类型,顺序);与返回值类型无关

优点:取名字很方便,例如求整型和与求浮点型和的函数名可以都为sum且不会报错(见下)。

public static int sum(int a,int b){
    return a+b;
}
public static double sum(double a,double b){
    return a+b;
}

3.2方法签名 

定义:方法全路径名+参数列表+返回值类型 

例如:int add (int, int) 真正的名字:extend01/TestMethod.add(II)I

          double add(double, double) 真正的名字:extend01/TestMethod.add(DD)D

查看:先对工程进行编译生成.class 字节码文件;在文件中进入要查看的.class所在的目               录(在out文件目录下启动cmd);输入 javap -v 字节码文件名即可。

 方法签名中一些特殊符号的含义:

V:void     Z:boolean     B:byte     C:char     S:short     I:int     J:long     F:float     D:double      [:数组,以 [ 开头,配合其他的特殊字符,表述相应类型数据的数组,几个 [ 表示几维数组L: 引用类型,以L开头 ; 结尾,中间是引用类型的全类名

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

栈的应用-算数

本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示&#xff0c;计算器由两个堆栈组成&#xff0c;一个堆栈 S1​ 存放数字&#xff0c;另一个堆栈 S2​ 存放运算符。计算器的最下方有一个等号键&#xff0c;每次按下这个键&#xff0c;计算器就…

Form Generator扩展 文本 组件

一、form-generator是什么?✨ ⭐️ 🌟 form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的…

kubeadm探秘

为什么kubeadm可以用于生产&#xff1f;第一是kubeadm已经被官方收编&#xff0c;可以在官网文档中找到它的身影。另外一个是kubeadm是用golang调用k8s的命令去执行创建k8s集群的。查看一下kubeadm的代码即可知道。本文来源于csdn作者 sunican挨个打开目录查看文件可知&#xf…

Guitar Pro8吉他学习辅助软件

Guitar Pro8最大的特色就是可以直接用鼠标和键盘按标准的六线谱、四线谱进行乐谱输入、查看、打印和试听&#xff0c;可以实时、自动滚屏、多种模式的显示单声部或乐曲总谱&#xff0c;在做弹拨乐器的滑音、倚音、推弦、揉弦、泛音、摇把、闷音、琶音、分解和弦、BASS打弦等方面…

【汽车应用处理器】DRA770PJGACDQ1、TDA4VM88TGBALFR功能应用

DRA770PJGACDQ1 汽车应用处理器旨在满足现代车内数字驾驶舱体验对于处理性能的强烈需求。利用该器件&#xff0c;原始设备制造商(OEM)和原始设计制造商(ODM)得以将创新型连接技术、语音识别和音频流式传输等快速投入实施。Jacinto6 Plus器件通过极其灵活的全集成混合处理器解决…

zigbee学习笔记:IO操作

1、IAR新建工程 &#xff08;1&#xff09;Projetc→Create New Projetc→OK→选择位置&#xff0c;确定 &#xff08;2&#xff09;新建一个c文件&#xff0c;保存在路径中 &#xff08;3&#xff09;点击工程&#xff0c;右键→add→加入c文件 &#xff08;4&#xff09;…

10、go工程化与标准库

目录一、用go mod管理工程二、包引入规则三、init调用链四、可见性五、标准库1 - 时间函数2 - 数学计算3 - I/O操作4 - 编码一、用go mod管理工程 初始化项目&#xff1a;go mod init $module_name&#xff0c;$module_name和目录名可以不一样。上述命令会生成go.mod文件 mod…

除了「加机器」,其实你的微服务还能这样优化

生产实践中&#xff0c;如果遇到业务流量变高导致服务负载升高甚至报警&#xff0c;我们的第一反应往往是「加机器」。 俗话说&#xff0c;能用钱解决的问题都不是问题。 俗话又说&#xff0c;充钱你就能变得更强。 但是&#xff0c;作为一个有理想有抱负的架构师&#xff0c;…

前端——7.图像标签和路径

这篇文章&#xff0c;我们来讲解一下图像标签 目录 1.图像标签 1.1介绍 1.2实际展示 1.3图像标签的属性 1.3.1 alt属性 1.3.2 title属性 1.3.3 width / height 属性 1.3.4 border属性 1.4注意事项 2.文件夹 2.1目录文件夹和根目录 2.2 VSCode打开目录文件夹 3.路…

决策树学习报告

报告 一、基本概念 决策树的定义&#xff1a;首先&#xff0c;决策树是一种有监督的分类算法——即给定X&#xff0c;Y值&#xff0c;构建X&#xff0c;Y的映射关系。不同于线性回归等是多项式&#xff0c;决策树是一种树形的结构&#xff0c;一般由根节点、父节点、子节点、…

MyBatis-Plus的入门学习

MyBatis-Plus入门学习简介特性快速开始MyBatis-Plus的注解详解Tableld主键生成策略1、数据库自动增长 AUTO2、UUID3、Redis生成id4、MP主键自动生成TableNameTableField自动填充测试方法&#xff1a;update乐观锁select查所有根据id查多个id批量查询简单条件查询&#xff08;通…

MySQL性能优化

MySQL性能调优 存储数据类型优化 尽量避免使用 NULL尽量使用可以的最小数据类型。但也要确保没有低估需要存储的范围整型比字符串操作代价更低使用 MySQL 内建的数据类型&#xff08;比如date、time、datetime&#xff09;&#xff0c;比用字符串更快 基本数据类型 数字 整数…

中国巨头在NLP领域的大模型布局

什么是大模型&#xff1f; 大规模模型&#xff08;large-scale model&#xff09;是近年来人工智能领域的一个热点话题&#xff0c;因为它们可以对自然语言处理&#xff08;NLP&#xff09;和其他任务进行更准确和深入的处理。由于大模型需要庞大的计算资源和数据支持&#xf…

论文投稿指南——中文核心期刊推荐(国家财政)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

SpringSecurity第二讲

目录 二、SpringSecurity02 2.1 JWT概述 2.1.1 JWT介绍 2.1.2 跨域认证问题 2.2 JWT的原理 2.3 JWT的数据结构 2.3.1 Header 2.3.2 Payload 2.3.3 Signature 2.4 JWT的使用方式 2.5 JWT的使用 2.5.1 引入JWT依赖 2.5.2 编写JWT工具类 2.6 编写前后端不分离的项目…

【C语言】每日刷题 —— 牛客语法篇(3)

前言 大家好&#xff0c;继续更新专栏c_牛客&#xff0c;不出意外的话每天更新十道题&#xff0c;难度也是从易到难&#xff0c;自己复习的同时也希望能帮助到大家&#xff0c;题目答案会根据我所学到的知识提供最优解。 &#x1f3e1;个人主页&#xff1a;悲伤的猪大肠9的博客…

sd卡格式化后数据恢复怎么操作

有时候我们需要清空SD卡数据文件&#xff0c;有时候则是因为需要修复SD卡所以需要格式化&#xff0c;但是却被提示无法格式化SD卡。这种情况往往是由于平时SD卡使用时的一些不良习惯或是SD卡中病毒&#xff0c;病毒在运行SD卡中的软件所造成的。那么sd卡格式化后数据恢复怎么操…

[数据结构]栈的深入学习-java实现

CSDN的各位uu们你们好,今天千泽带来了栈的深入学习,我们会简单的用代码实现一下栈, 接下来让我们一起进入栈的神奇小世界吧!0.速览文章一、栈的定义1. 栈的概念2. 栈的图解二、栈的模拟实现三.栈的经典使用场景-逆波兰表达式总结一、栈的定义 1. 栈的概念 栈&#xff1a;一种…

国密SM4分组密码算法

前言密码&#xff0c;是指使用特定变换对数据等信息进行加密保护或安全认证的物项&#xff08;承载算法、密钥、密文的介质&#xff09;和技术&#xff0c;主要用于加密和安全认证&#xff08;身份识别、完整性、抗抵赖性&#xff09;。密码按照保密等级&#xff0c;又分为核密…

06 电力电子仿真 MATLAB/Simulink

文章目录01 单相半波整流电路02 单相全波整流电路&#xff08;子系统封装模块&#xff09;03 三相桥式整流电路&#xff08;三相模块与示波器使用&#xff09;04 相控与斩控交交调压&#xff08;THD计算&#xff09;05 Buck电路&#xff08;PWM实现与闭环反馈&#xff09;06 单…