当前位置: 首页 > article >正文

JAVA与C语言之间的差异(一)

一、代码习惯以及主函数

JAVA中{在使用的时候不要换行

 public static void main(String[] args) {int[] array = {1, 2, 3};for(int i = 0; i < array.length; ++i){System.out.println(array[i] + " ");}}

其次,以main函数为主函数:

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

二、标识符

         JAVA的标识符中可以包含:字母、数字以及下划线和$符号等等,但是不可以以数字开头,关键字也不行,并且要严格区分大小写!!!

我们一般对于标识符还有这这样的要求:

1.(类名)每个字母的首字母要大写(叫做大驼峰)

2.(方法名)(变量名)首字母小写,后面的每个单词的首字母大写(叫做小驼峰)

三、在C语言中,布尔类型所对应的关键字是bool,而在JAVA中则是boolean。

        关于布尔类型,需要注意的是,在JAVA语言中,只有true和false两种写法,不存在1表示true,0表示false这种用法!!!

四、在不同类型之间的变量相互赋值的时候,会有教严格的校验

        如果是数据范围小的转为数据范围大的时,编译器会自动进行处理,自动转换为数据范围大的(自动类型转换(隐式))

        如果是要把数据范围大的赋值给数据范围小的,若是不加以干涉,会直接显示编译错误。同时,若是想要强行转换,可以采取下列措施:

int a = 10;
long b = 100L;
b = a;        // int-->long,数据范围由⼩到⼤,隐式转换 
a = (int)b;   // long-->int, 数据范围由⼤到⼩,需要强转,否则编译失败float f = 3.14F;
double d = 5.12;
d = f;        // float-->double,数据范围由⼩到⼤,隐式转换
f = (float)d; // double-->float, 数据范围由⼤到⼩,需要强转,否则编译失败byte b1 = 100;        // 100默认为int,没有超过byte范围,隐式转换 
byte b2 = (byte)257;  // 257默认为int,超过byte范围,需要显⽰转换,否则报错

#注:强制类型转换不⼀定能成功,不相⼲的类型不能互相转换

五、byte与byte的运算

在JAVA中是支持byte之间进行运算的,但是不可以直接赋值

 byte a = 10;byte b = 20;byte c = a + b; // 编译出错System.out.println(c);

这是因为他们在计算的时候,会先将自身提升成为int,再进行计算。

 byte a = 10;byte b = 20;byte c = (byte)(a + b);System.out.println(c);

(short同理!!!)

六、移位运算

<<是左移,即最左侧不要,最右侧补0(丢弃的是符号位,所以可能会变号);

>>是左移,即最右侧不要,最左侧补符号位(正数补0,负数补1);

>>>是无符号右移,即最右侧不要,最左侧直接补0。

七、输出

System.out.println(msg);              // 输出⼀个字符串, 带换⾏       
System.out.print(msg);                // 输出⼀个字符串, 不带换⾏       
System.out.printf(format, msg);       // 格式化输出         

JAVA的输出很简单,可以直接把想要输出的字符直接放到()里面即可,若是加“”则是输出引号内的内容,如果想要叠加使用,中间可以用+连接起来:

int a = 1;
System.out.println(a);      //输出1
System.out.println("a");    //输出a
System.out.println(a+a+"a");//输出11a

八、输入

使⽤Scanner读取字符串/整数/浮点数,使⽤时需要导⼊该类

import java.util.Scanner; // 需要导⼊ util 包Scanner sc = new Scanner(System.in);
String name = sc.nextLine();//姓名
int age = sc.nextInt();//年龄       
float salary = sc.nextFloat();//工资
sc.close(); // 注意, 记得调⽤关闭⽅法

多组输⼊

 Scanner sc = new Scanner(System.in);while (sc.hasNextInt()) {int tmp = sc.nextInt();}

当循环输⼊多个数据的时候,使⽤ctrl+z来结束输⼊(Windows上的CMD中使⽤ctrl+z,Linux/ Mac/IDEA的控制台上使⽤ctrl+d)

http://www.lryc.cn/news/2392104.html

相关文章:

  • 深入剖析 C 语言中的指针数组与数组指针
  • 4.1.1 Spark SQL概述
  • 【VSCode-Qt】Docker远程连接的项目UI文件在 VSCode 上无法预览
  • redis五种数据结构详解(java实现对应的案例)
  • Telnet 命令详解
  • 深度解析新能源汽车结构与工作原理
  • React 生命周期与 Hook:从原理到实战全解析
  • OpenSSL 与 C++ 搭建一个支持 TLS 1.3 的服务器
  • HOW - 简历和求职面试宝典(六)
  • 【机器学习基础】机器学习入门核心算法:逻辑回归(Logistic Regression)
  • 深入理解设计模式之命令模式
  • 智能仓储落地:机器人如何通过自动化减少仓库操作失误?
  • Android 架构演进之路:从 MVC 到 MVI,拥抱单向数据流的革命
  • [低代码表单生成器设计基础]ElementUI中Layout布局属性Form表单属性详解
  • 数据结构7——二叉树
  • 从“被动养老”到“主动健康管理”:平台如何重构代际关系?
  • Java 中的 synchronized 和 Lock:如何保证线程安全
  • 贪心算法应用:最大匹配问题详解
  • 爬虫IP代理效率优化:策略解析与实战案例
  • 豆瓣电视剧数据工程实践:从爬虫到智能存储的技术演进(含完整代码)
  • 【HW系列】—C2远控服务器(webshell链接工具, metasploit、cobaltstrike)的漏洞特征流量特征
  • 5.28 孔老师 nlp讲座
  • 基于微信小程序的漫展系统的设计与实现
  • 打卡day39
  • 基于Web的分布式图集管理系统架构设计与实践
  • mysql执行sql语句报错事务锁住
  • Java消息队列应用:Kafka、RabbitMQ选择与优化
  • 零基础设计模式——结构型模式 - 组合模式
  • 额度年审领域知识讲解
  • 腾讯云国际站可靠性测试