java基础语法(顺便回顾cpp语法并比较与java的异同)

2023-05-16

变量、标识符、关键字与数据类型

1.标识符命名风格约定:
①不能以数字开头,也不能有%等符号。可以有 _和$但不用作开头。
②方法名、变量名首单词小写,其余单词首字母大写。如anyVariableName
③类名、接口名每个单词的首字母大写.如:LaserPrinter
④符号常量名所有单词字母均大写。如:RED
2.Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。
3.java是区分大小写的 例如String关键字 S为大写
4.cpp中有的bool类型,在java中为boolean
5.为float变量赋值时数值后面要加f,不加f则前面的数据类型只能是double
6.java中的final关键字表现为cpp的const关键字作用(例如final String XXX)
另:习惯上常量名用大写字母
7.强制类型转换:double a; int b=(int)a (不四舍五入,直接截断小数位)

运算符

1.比较运算符和cpp相同,但是比较结果是false和true。比如:System.out.println("hi " + (a>b));结果为hi false或hi true。
但是在cpp中 cout<<(a>b)<<endl;结果为0或1
2.自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量。
3.注意++和–在左边或是右边的区别
4./号和cpp中一样 int/int 结果只能是int,且也并不四舍五入,而是直接截断。
5.一个一直以来忽略的运算符:^异或。有且只有一个正确,在cpp中也相同。
6.条件运算符和cpp也是一样的。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值。
7.使用逻辑运算符的“短路”现象:&&左边表达式为false,则不会再检查(执行)右边表达式是否正确;相同的,若||左边表达式为true,则也不会检查(执行)右边表达式。
8.附表 运算符的优先级
这里写图片描述

流程控制语句

熟悉的if、switch、while、do…while和for语句都和cpp相同
至于其他还有没有了…臣妾不知道哇……
switch语句的语法回顾:

switch( )
{
    case 1:
        ……
        break;
    case 2:
        ……
        break;
    case 3:case 4:
        ……
        break;
    default:
        ……
}

default那句不用break
1、 switch 后面小括号中表达式的值必须是整型或字符型
2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束
default 块可以出现在任意位置,也可以省略

break跳出循环(只跳出一层) continue 结束这次循环马上进入下一次

输入输出和注释

输出:

System.out.println(); 这样的输出是自带换行符的,若无需换行则用System.out.print();
若输出有多个变量,则用+连接 例如“hello”+ int1

输入:

获取用户输入的信息可以使用Scanner工具类(位于java.util包中,使用时需导入)
1.在package下面那行写 import java.util.Scanner;
2.创建Scanner对象(例如 Scanner input=new Scanner(System.in);)
3.接收并保存用户输入的值(字符串:input.next() .nextDouble() .nextInt())

注释:

java中的行注释、段落注释和cpp中相同
文档注释方法:
/**
*/

另:可以通过 javadoc 命令从文档注释中提取内容,生成程序的 API 帮助文档。
使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息:
@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明

数组

1.注意下标从0开始

2.java中 数据类型[ ] 数组名;或者 数据类型 数组名[ ];都是可以的形式 即int a[] 或者int[] a都可。但是int a[];时只是声明了数组类型的引用变量,并没有创建数组对象,此时内存中没有给数组分配空间。

3.但是 分配空间不能直接 int scores[3]这样,而应该是int scores[]=new int[3];或者 int[] scores=new int[]{1,2,3};使用后面这种方式时中括号里面不可以有数字。

4.例如数组名为scores 利用scores.lenth可以获取数组长度(最大下标为数组长度-1)

5.可用Arrays类操作java中的数组 也是在java.util包中(import java.util.Arrays;)
与cpp中一样 也可以用sort直接对数组进行排序
Arrays.sort(数组名); (cpp中为 sort(a,a+n)这样的形式 sort包含在algorithm头文件中)
默认均为升序排序

6.除此之外Arrays还提供其他的方法 如:
给数组赋值:通过fill方法。
比较数组:通过equals方法比较数组中元素值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
Arrays.toString(数组名);可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开

7.java中并没有foreach关键字
但是可用for(元素类型 元素变量:遍历对象){}这样来达到foreach的效果
元素变量这个 是一个很神奇的东西

import java.util.Arrays;


public class HelloWorld {


    public static void main(String[] args) {


        // 定义一个整型数组,保存成绩信息

        int[] scores = { 89, 72, 64, 58, 93 };


        // 对Arrays类对数组进行排序

        Arrays.sort(scores);


        // 使用foreach遍历输出数组中的元素

        for (int score:scores)
        {
            System.out.println(score)
        }
    }
}

类似于数组名叫foods 元素变量就是food 遍历对象就是foods

二维数组

声明:

数据类型[][] 数组名=new 数据类型[行的个数][列的个数];
//或
数据类型[][] 数组名;
数组名=new 数据类型[行的个数][列的个数];

在声明时赋值:
数据类型[][] 数组名={{,},{,},{,}}(此时为三行两列。外面的括号内为行数,里面的括号内为列数)
在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组
例如:

int[][] num=new int[3][];
num[0]=new int[2];
num[1]=new int[3];
num[2]=new int[4];

在二维数组中 names.length为行数; names[某行].length为该行列数

方法

在个人的理解里,java中的方法,也即cpp中的函数,不过似乎java方法前面基本都会有public、protected和private这样的修饰符。(方法不是类!)

调用方法时 要先创建类的对象
对象名.方法名()来实现调用
例:

public class HelloWorld 
    {
    public static void main(String[] args) 
    {
        // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld();
        // 调用方法
        hello.showMyLove();
    }
    //定义无参无返回值的方法
    public  void   showMyLove()
    {
        System.out.println("LOVE you!");
    }
}

1.方法的返回值最多只能有一个,不能返回多个值
2.方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等。
若返回值为数组 应为 int[] 方法名(变量)
例如:

//导入java.util.Arrays;

import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
        // 创建对象,对象名为hello
        HelloWorld hello = new HelloWorld();
        // 调用方法并将返回值保存在变量中
        int[] nums = hello.getArray(8);
        // 将数组转换为字符串并输出
        System.out.println(Arrays.toString(nums)); 
    }

    /*
     * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
     * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
     */
    public int[] getArray(int length) {
        // 定义指定长度的整型数组
        int[] nums = new int[length];
        // 循环遍历数组赋值
        for (int i = 0; i < nums.length; i++) 
        {
            // 产生一个100以内的随机数,并赋值给数组的每个成员
            nums[i]=(int)(Math.random()*100);
        }

注意其中产生随机数的方法 Math.random()*

方法的重载

重载:方法参数的个数、顺序或类型不同
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java基础语法(顺便回顾cpp语法并比较与java的异同) 的相关文章

  • 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

    网络设备中肯定离开不MAC和PHY xff0c 本篇文章将详细介绍下以太网中一些常见术语与接口 MAC和PHY结构 从硬件角度来看以太网是由CPU xff0c MAC xff0c PHY三部分组成的 xff0c 如下图示意 xff1a 上图
  • ubuntu(linux)下smb完整搭建流程-----原来如此简单,一步到位!!!!!!

    1 查看ubuntu版本号命令 lsb release a 2 下载安装 sudo apt get insall samba FAQ 如果出现apt install时候遇到E Unable to fetch some archives ma
  • xilinx fpga xdma

    一 下载XDMA文件 输入命令 sudo git clone https github com Xilinx dma ip drivers 二 编译文件 进入xdma文件夹 xff1a cd dma ip drivers XDMA linu
  • 网络通信原理及流程

    网络通信原理 1 1 互联网的本质就是一系列的网络协议 一台硬设有了操作系统 xff0c 然后装上软件你就可以正常使用了 xff0c 然而你也只能自己使用像这样 xff0c 每个人都拥有一台自己的机器 xff0c 然而彼此孤立吗 xff0c
  • LTE核心网介绍

    1 LTE网络架构 EPS包括核心网EPC xff08 EPC又包括MME xff08 信令处理部分 xff09 S GW xff08 数据处理部分 xff09 P GW xff09 E UTRAN xff08 只包含基站eNodeB一个网
  • FreeRTOS启动第一个任务和任务的切换(Cortex-M4)

    调度器是FreeRTOS操作系统的核心 xff0c 主要负责任务切换 xff0c 即在就绪任务中找出最高优先级的任务 xff0c 并使之获得CPU运行权 调度器并非自动运行的 xff0c 需要人为启动它 API函数vTaskStartSch
  • 1G~5G 网络结构演进过程

    无线接入网 xff1a 负责接收用户终端的无线信号 xff0c 由此接入到通信网络 xff1b 核心网 xff1a 对用户数据的管理及具体业务处理 xff0c 并作为承载网络提供到外部网络的接口 1 GSM网络结构 xff08 2G xff
  • 1G-5G 基站架构演进

    1 2G 2G通信系统采用3级网络架构 xff0c 即 xff1a BTS BSC 核心网 2G核心网同时包含CS域和PS域 2G通信系统起初主要采用一体式基站架构 一体式基站架构如下图所示 xff0c 基站的天线位于铁塔上 xff0c 其
  • NTP服务器

    1 NTP服务器 NTP协议是网络时间协议 Network Time Protocol xff0c 它是用来同步网络中各个计算机的时间的协议 它的用途是把计算机的时钟同步到世界协调时UTC xff0c 其精度在局域网内可达0 1ms xff
  • 对视频图像进行OSD叠加

    频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字幕叠加器 xff0c 字符叠加
  • H.264编码四种画质级别

    H 264编码四种画质级别 D1是数字电视系统显示格式的标准 xff0c 共分为以下 5 种规格 xff1a D1 xff1a 480i 格式 xff08 525i xff09 xff1a 720 480 xff08 水平 480 线 xf
  • I 帧时间间隔

    GOP xff08 Group of Pictures xff09 策略 影响编码质量 xff1a 所谓GOP xff0c 意思是画面组 xff0c 一个GOP就是一组连续的画面 MPEG编码将 画面 xff08 即帧 xff09 分为I
  • 吴恩达推荐点赞的深度学习专项课程精炼图笔记丨附下载)

    金猿奖 2019年度征集评选 大数据产业创新服务媒体
  • petalinux 2020.2 离线编译

    链接 xff1a https www xilinx com support download index html content xilinx en downloadNav embedded design tools html 2 在ub
  • qemu镜像转化

    qemu img convert f raw redhat6 7 kvm postgresql9 2 3 8disk pulsar2 2 O qcow2 redhat6 7 kvm postgresql9 2 3 8disk pulsar2
  • brew install 慢的解决方法

    brew install 慢的原因 brew install 会先去执行 brew update 而 brew update xff0c 会依次更新 brew homebrew core homebrew cask 而以上三个的来源都在 g
  • 在linux ubuntu18.04版本中安装ceres solver

    在linux ubuntu18 04版本中安装ceres solver 本文是参照ceres solver的官方网站的按照教程来写的 xff0c 并对其做了适当的修改以便能成功安装 ceres官方教程链接为http www ceres so
  • KITTI Odometry dataset中00-21系列的相机内参设置

    一些声明 见data odometry calib文件夹中的calib txt文件 xff0c 其中P0表示左边灰度相机的3 4内参矩阵 xff0c P1表示右边灰度相机的3 4内参矩阵 依据这两个矩阵 xff0c 求解 f x f x f
  • CMakeLists.txt模板+常用库头文件添加和库文件链接+调用头文件

    CMakeLists txt模板 声明要求的cmake最低版本 span class token function cmake minimum required span span class token punctuation span
  • CLion 乱码 中文编码设置(UTF8、GBK)(Windows、WSL)——持续更新ing

    目录 问题描述解决方案一 xff1a CLion的简单设置见证奇迹 博主使用CLion如果里面有中文经常会遇到输出乱码问题 xff0c 本篇博文将告诉你多种问题的解决方案 问题描述 我们新建一个CLion工程 xff1a span clas

随机推荐

  • GRUB(bootloader)

    GRUB grub legacy版本 grub 0 x xff1a grub legacy Centos 5 6 stage2及内核等通常放置于一个基本磁盘分区 boot分区 配置文件 xff1a boot grub grub conf g
  • ROS实践(1)-环境搭建

    一 介绍 ROS官网 xff1a http www ros org ROS中文社区 xff1a http www robotos net forum php ROS版本 xff1a ROS的版本名称是按字母顺序E F G H I J排列的
  • ROS实践(6)-自建示例

    一 单topic 1 初始化环境 创建路径 dev mytest xff0c 并加入环境变量 xff1a root 64 yangkai04 Inspiron 3650 dev pwd root dev vim bashrc export
  • Python Django之密码的加密和解密

    通过django自带的类库 xff0c 来加密解密很方便 xff0c 下面来简单介绍下 xff1b 导入包 xff1a code class sourceCode python hljs span class im span class h
  • KCU105 XDMA 测试

    rdf0307 kcu105 trd03 2017 3 kcu105 axis dataplane hardware vivado scripts ug920 kcu105 pcie streaming data plane trd pdf
  • Ubuntu 配置 boa 服务器

    原文 xff1a http www linuxidc com Linux 2011 08 39780p3 htm Ubuntu上编译使用boa服务器的教程文章 xff0c 已经有很多了 xff0c 博客上也有很多人写了 xff0c 我就不赘
  • 阿里云docker方式搭建CAS服务端-最新版

    现在网上查到的CAS服务端搭建方式都比较老 xff0c 坑也很多 docker镜像直接使用官方的 xff0c 便于今后无缝升级 cas现时点最新版本为6 3 1 创建工作目录 mkdir home cas 以下操作都在该目录下执行 2 生成
  • 0、清华大学开源软件镜像站linux系统镜像下载地址

    https mirrors tuna tsinghua edu cn
  • 使用SSH公钥(id_dsa.pub)实现免密码登录

    使用SSH公钥 id dsa pub 实现免密码登录 博客分类 xff1a linux shell ssh 免密码 公钥 首先 xff0c 在本地机器上产生公钥 xff1a Java代码 root 64 localhost ssh ssh
  • 6.1、startx命令怎么不能进入图形界面

    命令行界面输入startx命令怎么不能进入图形界面 复制链接 发表于 2010 1 29 12 55 来自 51CTO网页 只看他 楼主 我在虚拟机 xff08 vmware xff09 上新安装的red hat linux 9 0在命令行
  • 7.1、mysql mha 主从自动切换 高可用

    是这个博主写的 xff0c 但是找不到地址了 写了他的另一个MHA地址 感谢原创的贡献 mysql mha 主从自动切换 高可用 mha xff08 Master High Availability xff09 目前在MySQL多服务器 x
  • 7.3、mysql主主循环备份数据库

    绿色部分是我根据需要自己写的 mysql 主主互备 双机热备的概念简单说一下 xff0c 就是要保持两个数据库的状态自动同步 对任何一个数据库的操作都自动应用到另外一个数据库 xff0c 始终保持两个数据库数据一致 这样做的好处多 1 可以
  • 7.4、Slave_SQL_Running: No mysql同步故障解决方法

    Slave SQL Running No mysql同步故障解决方法 2010 02 21 16 31 30 标签 xff1a mysql 数据库 同步 双机 休闲 原创作品 xff0c 允许转载 xff0c 转载时请务必以超链接形式标明文
  • 7.5、mysql破解密码

    找不到原创了 xff0c 百度了一下 xff0c 这个比较像 感谢原创的贡献 vi etc my cnf 在配置文件中加入 s kip grant tables mysqld safe skip grant tables amp 最佳答案
  • Scrum实践系列之三--敏捷教练的修炼之路

    敏捷教练与项目经理 在被奉为 项目管理圣经 的PMBOK中 xff0c 对项目经理在各阶段的职责有着清晰的界定 xff0c 比如项目经理制定规则 安排进度 监控执行中的各项风险并实时汇报状态 xff0c 等等 然而在敏捷的世界里 xff0c
  • 知识图谱_概述:课程PPT+个人理解

    2019 05 08 一 概念 xff08 是什么 xff09 1 知识 xff1a 有不同的解释 xff0c 可以是 不变的真理 经验 背景 解释 交工的信息 xff08 1 xff09 分类 陈述性知识 gt 描述客观事物的性状和关系等
  • chatgpt

    transformer GitHub Topics GitHub
  • Apollo:source cyber/setup.bash的作用

    source cyber setup bash 是在使用Apollo开发过程中 xff0c 用于加载Apollo软件的配置以及环境变量的脚本 Apollo是一款自动驾驶开发平台 xff0c cyber是其中的一个核心模块 xff0c 提供了
  • 什么样的人当不好程序员?

    什么样的人当不好程序员 xff1f 2016 01 21 程序员之家 来源 xff1a 36Kr 译文 xff1a http 36kr com p 5042433 html 原文 xff1a https goo gl jLfUFq 软件蚕食
  • java基础语法(顺便回顾cpp语法并比较与java的异同)

    变量 标识符 关键字与数据类型 1 标识符命名风格约定 xff1a 不能以数字开头 xff0c 也不能有 等符号 可以有 和 但不用作开头 方法名 变量名首单词小写 xff0c 其余单词首字母大写 如anyVariableName 类名 接