Java基础——Java语言基础2

简介: Java基础——Java语言基础2

Java语言基础——变量专题


一、含义


 变量是编程中的最基本的概念之一。对于Java语言而言,每一个都变量都代表着内存中的一小块区域,而这块区域能够用来存放某个数据。就像生活当中,如果把数据比作东西,变量就是盒子。


image.png定义变量:变量类型  变量名;比如 int a;

image.png


二,数据/变量类型


强类型:变量类型必须和数据类型一致


弱类型:变量类型可以和数据类型不一致


image.png


在Java语言中,变量都是强类型的。


数据类型分为对象类型和简单类型(基本类型/原始类型)。对象类型有很多,但基本类型有8种。


基本类型:


①整数类型

image.png

一个字节8位,0或1。   2^8=256个数

image.png

引入一个概念字面值,即可以为一种数据类型的变量赋予的什么样的值。


如:byte b=200;  错误


          short s=200; 正确


  200不是byte的字面值但可以是short的字面值


再如long l=10L;


在10后面加字母L更加明确的表示10是long的字面值,如果不加L也对,但系统会默认10是int的字面值,相当于是int赋值给long.其中所加字母L大小写不区分


②浮点类型


float  单精度浮点数 4B  如float f=1.4f;


double 双精度浮点数 8B  如double d= 1.4d;


注意:1,float类型后面赋值数一定要加f,大小写均可,double类型后面赋值数可以省略d。


               2,double赋值数也可以用科学计数法,如double d=1.4e10;其中1.4e10=1.4*10^10.


               3,一般小数默认为double类型。如1.4——系统默认为double类型。


③字符类型


Ⅰ,char   采用unicode国际编码方式  2B


  一个字符和一个正数都是对应的,因为一个字符需要转化成整数存储在硬盘里。如’a’<==>65


  char有三种字面值


      char c1=’a’;


      char c2=65;


              char c3=’\u0041’;


           1,所以char和int是相通的,可以参与运算


           2,’\u0041’是16进制表示法


                  char 2B  16bit


    二进制数有16个数转换成16进制就有4个数,四个一位,所以就是0041

image.png


Ⅱ,转义字符


‘\t’    水平挑格


‘\n’    换行


‘\’’   单引号


‘\”’   双引号


‘\\’    反斜杠


④布尔类型


boolean   字面值是true  false,有特殊含义不能作为标识符,也不能参与运算


  注意:除了8种类型之外,还要强调一下String 字符串,不算基础类型,字面值是“HelloWorld”,只能参加加法运算,表示字符串连接,如


                                       “AB”+”CD”=”ABCD”


                                       “AB”+10=”AB10”


      除了8种基本类型和特殊的String外,其他变量都不可以参加运算


三,类型转换


类型转换分为自动类型转换和强制类型转换.


          如果把类型比作盒子,字节小的就是小盒子,字节大的就是大盒子,小盒子放在大盒子里很容易(自动类  型转换),大盒子放在小盒子里放不下,强制把大盒子放进小盒子里,就需要把大盒子多余的地方舍去再放进  去,但舍去的一部分如果有东西,那么这个盒子就变了(数值发生变化),但舍去的地方没用,这个盒子就没  什么 变化(数值恰好不变)(强制类型转换)。


            如:int i;  short s;


      自动类型转换  i=s;        ——数值不变


      强制类型转换  s=(short)i; ——数值可能变化


                   ①,自动类型转换


                          int  4B   10——> double   8B  10.0


                   ②,强制类型转换


                           int i=10;                        4B


                           short s=(short)i;       2B


         把int比作4个盒子,short比作2个盒子

image.png

                                             


Ⅰ,数值不变


short s=10;


byte  b=(byte)s;


10    short ——>0000 0000 0000 1010 ——>10


10    byte  ——>                  0000 1010 ——>10


舍掉高字节,数值不变


Ⅱ,数值变化


short s=280;


byte  b=(byte)s;


280    short ——>0000 0010 0001 1000 ——>280


280    byte  ——>                   0001 1000 ——>24


舍掉高字节,数值变化


四,自动类型提升


a+b


如果a和b有double  ====>double


如果a和b有float      ====>float


如果a和b有long      ====>long


其他默认结果          ====>int


五,运算符


表达式:变量和字面值用某个运算符连接的式子。如a+b,2+c。表达式必须有固定的值,形成表达式的关键元素——运算符。


运算符


①数学运算符


   +    -    *    /     %(模)  


10%3=1


a%2=___  1 奇数


a%2=___  0 偶数



4/5=0    4 .0/5=0.8


   ②赋值运算符


=   +=    -=   /=   ++  --……


a+=3   ==>a=a+3  


a-=3    ==>a=a-3


两者区别是前者不会发生自动类型提升后者会


a++  a+=1  先取值后+1


++a  a+=1  先+1后取值


如:a=4  a++等于4,++a等于5,最终结果a=5


③布尔运算符


==   >   <<  >=  <=  !=  


a==b  用于判断  


a等于b 结果为true


a不等于b 结果为false


④逻辑运算符


&&(与)    ||(或)     ! (非)


(a>b)&&(c<<d)


⑤移位运算符


>>     <<     >>>  


a=10110;


a>>1  ==>   01011     右移位   /2


a<<1  ==>   101100    左移位   *2




⑥位号运算符


  ?:  


判断如果问号前面正确结果为冒号前面的值,如果错误结果为冒号后面的值


如(a>b)?3:2


a>b 正确,结果为3


a>b 错误,结果为2


⑦不常用运算符


&   |   ~   ^


按位求与、或、反、异或


1011


            & 1001        


             1001        都为1等于1,否则为0




1011


                   | 1001        


             1011        一个为1等于1,否则为0




1011


                   &1001        


             1001        都为1等于1,否则为0




        1011


             ^ 1001        


                1001        相同为1,不用为0



      ~1011 = 0100


注意:


(a>b)&(c<d)       非短路  


不管一个条件是否符合,第二个也要判断


(a>b)&&(c<d)       短路    


只要第一个条件符合,第二个就不用判断


相关文章
|
2月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
95 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
1月前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
55 4
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
92 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
63 3
|
2月前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
98 4
|
2月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
27 1
|
2月前
|
Oracle Java 关系型数据库
|
2月前
|
存储 Java 数据安全/隐私保护
Java中的域,什么是域?计算机语言中的域是什么?(有代码实例)
文章解释了Java中域的概念,包括实例域、静态域、常量域和局部域,以及它们的特点和使用场景。
87 2