3.Java入门笔记--基础语法

1.字面量

概念:计算机用来处理数据的,字面量就是告诉程序员数据在程序中的书写格式

常用数据:整数,小数直接写;字符单引号('A')且只能放一个字符;字符串双引号("Hello")内容可以为多个字符;布尔值true和false;空值:null。

2.变量

格式:

数据类型 变量名称 = 数据;

变量指内存中的一块区域,相当于盒子,里面装的数据可以变化。

变量的应用场景:对数据进行处理就很方便。例如:

//钱包里有9.5元,收到了10元红包,又发出去5元,请输入各阶段红包情况
double money = 9.5;//钱包
//收到10元money = money + 10;
System.out.println(money);//此时输出19.5
//发出去5元
money = money - 5;
System.out.println(money);//此时输出14.5

3.关键字、标识符

关键字:Java语言自己用到的一些词,有特殊的作用,如:public、class、int等等。所以关键字是我们不能用来作为类名、变量名。

标识符:编写程序的名字,像类名、变量名等都是标识符。

        基本组成:数字、字母、下划线、美元符等

        要求:不能以数字开头、不能用关键字作为名字、区分大小写。

4.存储知识补充

数字存储

  • 计算机中表示数据的最小单元:一个字节(byte,简称B,是使用8个二进制位组成的)
  • 字节中的每个二进制位就称为位(bit,简称b),1B=8b。

字符存储

  • ASCLL编码:将字符对应数字再在电脑中存储。

图片存储

  • 图片是由无数个像素点组成的
  • 每个像素点的数据用0~255*255*255表示其颜色

声音存储:

  • 声波对应频率数据再转换为2进制

5.数据类型

总体分两类:基本数据类型引用数据类型

基本数据类型

4大类:整型、浮点型、字符型、布尔型

8种:byte、short、int、long;float、double;char;boolean

package jmpro1;public class lip1 {public static void main(String[] args) {//目标:掌握基本数据类型的使用//1.byte short int longbyte a = 127;//范围-128到127//byte a2 = 128;//越界了short s = 13244;//短整型//short s1 = 93244;//越界了int i = 422424;//注意:随便写一个整型字面量默认是int类型的42222222461虽然没有超过long的范围,但是超过了int的范围//如果希望随便写一个整型字面量默认是long类型,需要在后面加上L/llong lg = 42222222461L;//2.float double //注意:随便写一个小数字面量默认是double类型的//如果希望随便写字面量默认是float类型,需要在后面加上F/ffloat f = 3.14F;//3.char 字符型char ch='a';//4.booleanboolean flag = true;boolean flag1 = false;//引用数据类型,后面要用//String 称为字符串类型,定义的变量可以用于记住一个字符串数据。String name = "张三";System.out.println(name);}
}

6.类型转换

概念和意义:在开发中,1.某种类型的变量赋值给另一种类型的变量时需要转换2.不同的类型需要一起计算时要用到类型的转换。

6.1.自动类型转换

概念:类型范围小的变量可以直接赋值给类型大的变量。

比如byte类型的变量可以直接赋值给int类型的变量。

package jline2;public class hello {public static void main(String[] args) {//目标:理解自动类型转换机制byte a = 12;int b = a;//没有报错,发生了自动类型转换System.out.println(a);System.out.println(b);}
}

输出两个12。

执行原理:

例:1.首先开辟一个byte类型的名为a的空间(8位的二进制);2.第二行开始开辟一个int类型名为b的空间(32位);3.将a变量里面的数据赋值到b变量中,将a中的数放在b的最后前面补0。

其他形式:

6.2.表达式的自动类型转换

概念及意义:在进行不同类型的变量或数据一起运算时,要知道最后运算出的数据的类型。

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型再运算。

注意:

  • 最终结果类型有最高类型决定
  • byte、short、char是直接转化成int类型参与运算的
package jline2;public class hello {public static void main(String[] args) {//目标:掌握表达式的自动类型转换机制byte a = 10;int b = 20;long c = 30;long rs = a + b + c;//最高表达式是longSystem.out.println(rs);}
}

6.3.强制类型转换

      概念:大范围类型变量转换为小范围类型变量

数据类型 变量2=(数据类型)变量1、数据

例如:

package jline2;public class hello {public static void main(String[] args) {//目标:掌握强制类型转换int a3 = 20;//byte b3 = a3;//报错//需要强制类型转换byte b3 = (byte)a3;}
}

执行原理:

1.首先开辟一个int类型的名为a3的空间(32位的二进制);2.第二行开始开辟一个类byte型名为b3的空间(8位);3.将a3变量里面的数据赋值到b3变量中,将a中的数的最后几位强制放在b中。

另一种情况:范围大于小范围值时,

package jline2;public class hello {public static void main(String[] args) {//目标:掌握表达式的自动类型转换机制int a4 = 1500;byte b4 = (byte)a4;System.out.println(b4);//-36}
}

所以,强制类型转换是可能造成数据丢失的,比如浮点型强转成整型,直接丢掉小数点部分,保留整数部分返回。

7.运算符

7.1.基本的算术运算符

+ - * /都和数学语言一样(/中在Java中两个整数相除结果还是整数)

%取余:获取的是两个数据做除法的余数。

+还可以作为连接符:不能计算时连接。

int a = 5;
System.out.println("abc" + a);//输出abc5

7.2.自增自减运算符

自增:++

自减:--

注意:它们只能操作变量,不能操作字面量。

int a = 10;
//a++;//a= a+1;
++a;System.out.println(a);//11
//a--;//a = a-1
--a;
System.out.println(a);//11-1=10

++、--如果不是单独使用,放在变量的前后会有明显的区别:

  • 放在变量的前面对变量进行+1、-1的操作,再拿变量的值进行运算。
  • 放在变量的前面,先拿变量的值进行运算,再对变量进行+1、-1的操作。
package jline2;public class hello {public static void main(String[] args) {/int a5 = 10;int rs2 = ++a5;//放前面,先加后用System.out.println(rs2) ;System.out.println(a5) ;//先加让a5变成11再给rs2//int b5 = 10;int rs3 = b5++;//放后面,先用后加System.out.println(rs3) ;//10先把10给rs3再加在b5上System.out.println(b5) ;
}

7.3.赋值运算符

基本赋值运算符是“=”,从右往左看

扩展:

符号用法作用底层代码形式
+=a+=b加后赋值a = (a的类型)(a + b);
-=a-=b减后赋值a = (a的类型)(a - b);
*=a*=b乘后赋值a = (a的类型)(a * b);
/=a/=b除后赋值a = (a的类型)(a / b);
%=a%=b取余后赋值a = (a的类型)(a % b);

注意:扩展的赋值运算符隐含了强制类型转换。

例:

package item1;public class lessonss {public static void main(String[] args) {//目标:掌握扩展赋值运算符的使用//+=//需求:收红包double a = 9.5;double b = 520;a += b;//a =(double)a + b;System.out.println(a);//-= 需求:发红包double i = 600;double j = 520;i -= j;//i =(double) i - j;System.out.println(i);}
}

例题:

byte x = 10;
byte y = 30;
x = x + y;//是否正确

错误

package item1;public class lessonss {public static void main(String[] args) {byte x = 10;byte y = 30;//x = x + y;//编译报错x =(byte) (x + y);//x += y;也是正确的System.out.println(x);}
}

原因:byte、short、char是直接转化成int类型参与运算的,也就是说x+y是整型。

7.4.关系运算符

判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔值类型的值:true或者false。

package item1;public class lessonss {public static void main(String[] args) {//目标:关系运算符的基本使用int a1 = 10;int b1 = 5;boolean rs = a1 > b1;System.out.println(rs);//true}
}

7.5.逻辑运算符

逻辑运算符:&(与)、|(或)、!(非)、^(异或)

依次运算逻辑为:

  • &(与):多个条件必须都是true;有一个是false,结果就是false
  • |(或):多个条件中只要有一个是true,结果就是true
  • !(非):取反;
  • ^(异或):前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true

特别地:&&(短路与)、||(短路或);判断结果与单个&|一样,过程不同。

&&:左边是false,右边不执行

||:左边是true,右边不执行

注意:在Java中,“&&”、“||”无论左边是false是true,右边都要执行。所以说&&、||的运算效率更高。

7.6.三元运算符

//格式
条件表达式? 值1:值2;

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

package item1;public class lessonss {public static void main(String[] args) {//目标:掌握三元运算符运算符的使用double score =98.5;String rs4 = score >= 60 ? "及格" : "不及格";System.out.println(rs4);//及格}
}

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

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

相关文章

ROUGE:摘要自动评估软件包

算法解析 ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一组用于自动评估文本摘要质量的指标,主要通过比较机器生成的摘要与一个或多个参考摘要之间的重合程度来衡量。ROUGE 包括多个变体,其中最常用的有 ROUGE-N…

深度解析模型调优与正则化:L1、L2正则化及偏差-方差的权衡

🎯 深度解析模型调优与正则化:L1、L2正则化及偏差-方差的权衡 📖 目录 🌟 模型调优的本质:偏差与方差的权衡🔎 正则化的概念与作用🛠 L1正则化(Lasso回归)详解与实现⚙…

linux 修改主机名和用户名颜色

编译 ~/.bashrc vim ~/.bashrc 如下格式 PS1\[\e[1;31m\]\h:\[\e[0;32m\]\w \[\e[1;34m\]\u\[\e[0m\]\$ PS1${debian_chroot:($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\] if [ -e /lib/terminfo…

QT中中文显示乱码问题

在VS2013中用QT开发GUI应用程序&#xff0c;Qt中显示中文乱码 一&#xff1a; //解决QT中中文显示乱码问题 #pragma execution_character_set("utf-8") 二&#xff1a;在main函数中添加以下代码&#xff1a; #include <QTextCodec>void main() {QTextCod…

MySQL中的增查操作:探索数据的奥秘,开启数据之门

本节&#xff0c;我们继续深入了解MySQL&#xff0c;本章所讲的基础操作&#xff0c;针对的是表的增删查改&#xff01; 一、Create 新增 1.1、语法 INSERT [INTO] table_name[(column [, column] ...)] VALUES(value_list) [, (value_list)] ... value_list: value, [, va…

离线安装bitnami-gitlab8.8.4+汉化

注意&#xff1a; 常规安装gitlab需要联网&#xff0c;而按装bitnami-gitlab无需联网(bitnami-gitlab用于内网环境无法联网时安装gitlab&#xff0c;两者是一个东西只是名字不一样)bitnami-gitlab-8.8.4版本可以汉化成功新用户注册账户无需激活也可以直接登录&#xff0c;因为…

200元运动蓝牙耳机有哪些?爆款测评PK力荐!

在运动场景下&#xff0c;传统的入耳式和半入耳式耳机虽然占据了大部分市场&#xff0c;但并不适合所有人&#xff0c;尤其是在长时间运动中佩戴时&#xff0c;耳道的压迫感往往会导致不适。而骨传导耳机虽然通过不塞入耳道的方式改善了佩戴舒适度&#xff0c;但在音质方面与入…

git-合并连续两次提交(一个功能,备注相同)

前言&#xff1a; 场景是这样&#xff0c;由于我是实现一个功能&#xff0c;先进行了一次commit,然后我发现写的有些小问题&#xff0c;优化了一下功能并且把代码优化了一次&#xff0c;于是又提交了一次。两次的提交都是以相同的备注&#xff08;当然这个无所谓&#xff09;&a…

keras的内部的模块有哪些? (自用便签)

AI回答, 什么时候忘了回来看看

OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 轮询已按下的键。 函数 pollKey 无等待地轮询键盘事件。它返回已按下的键的代码或如果没有键自上次调用以来被按下则返回 -1。若要等待按键被按…

如何在分布式环境中实现高可靠性分布式锁

目录 一、简单了解分布式锁 &#xff08;一&#xff09;分布式锁&#xff1a;应对分布式环境的同步挑战 &#xff08;二&#xff09;分布式锁的实现方式 &#xff08;三&#xff09;分布式锁的使用场景 &#xff08;四&#xff09;分布式锁需满足的特点 二、Redis 实现分…

12、论文阅读:利用生成对抗网络实现无监督深度图像增强

Towards Unsupervised Deep Image Enhancement With Generative Adversarial Network 摘要介绍相关工作传统图像增强基于学习的图像增强 论文中提出的方法动机和目标网络架构损失函数1) 质量损失2) 保真损失3&#xff09;身份损失4&#xff09;Total Loss 实验数据集实现细节评…

【机器学习】任务七:聚类算法 (K-means 算法、层次聚类、密度聚类对鸢尾花(Iris)数据进行聚类)

目录 1.基础知识 1.1 K-Means 算法 1.2 层次聚类&#xff08;Hierarchical Clustering&#xff09; 1.3 密度聚类&#xff08;DBSCAN&#xff09; 1.4 距离和相似度度量方法 1.5 总结&#xff1a; 2.K-means 算法对鸢尾花&#xff08;Iris&#xff09;数据进行聚类 2.1…

Linux - 环境变量 | 命令行参数 | 进程基础

文章目录 一、了解冯诺依曼体系结构1、概念2、对数据层面3、实例二、操作系统1、概念2、设计OS的目的3、定位4、操作系统怎么管理&#xff1f; 三、进程1、概念2、怎么管理进程3、描述进程-PCB4、描述进程怎么运行&#xff08;粗略&#xff09;5、进程属性6、创建子进程7、创建…

图片dpi怎么调整?这几个方法让你轻松搞定!

在数字化时代&#xff0c;图片的质量直接关系到视觉体验的效果。无论是社交媒体分享、网页展示还是专业打印&#xff0c;调整图片的DPI&#xff08;Dots Per Inch&#xff0c;每英寸点数&#xff09;都是至关重要的一步。今天&#xff0c;我们就来聊聊如何轻松调整图片的DPI&am…

2024年10月21日第二部分

规划第一次演唱会,微积分 入档足够优秀都可以 【【马斯克演讲】一场会让你哭泣的励志演讲&#xff01;】 https://www.bilibili.com/video/BV1az421z7ei/?share_sourcecopy_web&vd_source476fcb3b552dae37b7e82015a682a972 ‍你可能不知道马斯克有多牛。两万亿刀&#…

博客|基于springBoot的精简博客系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 &#xff08;1&#xff09;个人中心 &#xff08;2&#xff09;管理员管理 &#xff08;3&#xff09;用户管理 &#xff08;4&#xff09;博客信…

骨传导耳机哪个品牌好用?骨传导耳机排行榜前五名冠军机型精选!

随着科技的不断进步&#xff0c;我们的生活方式也在不断演变。在数码耳机领域&#xff0c;骨传导耳机的兴起无疑是非常有创意的。它凭借独特的传导方式&#xff0c;能够让用户在享受高质量音效的同时&#xff0c;保持对周围环境的感知&#xff0c;可以在一些特定场景下带来更好…

软件压力测试如何进行?深圳软件测试机构分享

软件压力测试是每个重要软件测试工作的一部分&#xff0c;是一种基本的软件质量保证行为。压力测试不是在常规条件下运行手动或自动测试&#xff0c;而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网…

SpringSecurity源码分析以及如何解决前后端分离出现的跨域问题

解决Security前后端分离出现的跨域问题 一. Security源码分析 首先在看源码之前我们先来看这张图 , 这张图展示了Security执行的全部流程 从上图可知Security执行的入口是UsernamePasswordAuthenticationFilter这个抽象类 , 那我们就先从该类进行分析 1. UsernamePasswordAu…