Java基本语法

1.标识符(zhi)

含义:名字

类名、对象名、方法名、变量名、常量名……

一个合法的标识符的组成:数字、字母、_和$

注意事项:

  1. 不能重复
  2. 不能以数字开头
  3. 区分大小写
  4. 不能以关键字和保留字作为标识符

关键字:该词汇在Java中已经定义了含义

保留字:该词汇在Java中还没有定义含义,但是以后可能会用,先保留起来    goto

1.1命名规范

类名:

如果是一个单词,那么首字母大写

如果是组合词,那么每个单词首字母大写

变量名:

如果是一个单词,那么全部小写

如果是组合词,那么从第二个单词开始首字母大写

常量名:

如果是一个单词,那么全部大写      USER

如果是一个组合词,那么全部大写,单词之间用_隔开 USER_NAME

2.容器

2.1变量

在程序运行期间,该变量中的数据可以发生改变

2.2常量

在程序运行期间,该容器中的数据不能发生改变(必须和final进行配合使用)

注意:

  1. 容器的类型确定了数据的类型
  2. 容器的大小确定了数据的大小

2.3声明变量

语法:

数据类型  变量名;

2.4变量内存图

2.5给变量赋值

语法:

变量名=数据;

2.6获取变量值

语法:

通过 变量名  获取

3.数据类型

3.1原始类型(基本数据类型)

3.2整数类型

字节型          byte       1字节=8bit          -128到127

在二进制中最小的八位:10000000         -128

在二进制中最大的八位:01111111         127

在二进制中正负区分:

  1. 如果最高位是0,表示该数据是正数
  2. 如果最高位是1,表示该数据是负数

短整型          short      2字节

整型              int          4字节

长整型          long       8字节

特殊:

如果给long类型的变量赋值,没有在数据后面加上l或L,那么jvm虚拟机会把该变量看成是int类型

在整数类型中默认类型是int类型

注意事项:

  1. 必须是数字
  2. 必须是整数

3.3浮点类型

单精度          float       4字节

特殊:

如果给float类型的变量赋小数值,没有在数据后面加上f或F,那么jvm虚拟机会把该数据看成是double类型的数据

因为在浮点类型中默认的是double类型

双精度          double   8字节

注意事项:

  1. 必须是数字
  2. 可以是整数可以是小数
  3. 获取的数据必定是小数

3.4字符类型

字符型          char       2字节

特殊:

如果给char类型的变量赋整数值,而且没有放到单引号中,返回的结果是一个字符

因为jvm虚拟机会拿着该数据到ASCII码表中找十进制对应的字符

注意事项:

  1. 可以存储任意类型
  2. 必须是单个
  3. 必须放到单引号中

3.5布尔类型

布尔型          boolean         1字节

注意事项:

  1. 该类型的数据不能随意赋值
  2. 该类型的数据只有两个:true、false

3.6引用类型

数组、对象、接口

4.ASCII

5.变量简写方式

5.1方式一

语法:

数据类型  变量名=数据;

声明变量时直接初始化值

5.2方式二

语法:

数据类型  变量名1,变量名2,变量名3……

声明变量时可以同时声明多个相同类型的变量

5.3方式三

语法:

数据类型  变量名1=数据,变量名2,变量名3=数据……

声明变量时可以同时声明多个相同类型的变量,并且初始化值

6.类型转换

含义:转换的数据的数据类型

6.1自动类型转换

隐式转换

含义:小容器中的数据自动转给大容器

比较数据类型大小:

  1. 如果是同一个数据类型,那么根据字节来比较
  2. 如果是不同数据类型,那么根据计算机给定的方式来比较

同一个数据类型大小:

整数类型:byte<<<short<<<int<<<long

浮点类型:float<<<double

字符类型:char

不同数据类型大小:

整数类型<<<浮点类型

特殊类型:

Char类型和byte、short是同一级别,区分不出大小

Char类型不能和byte相互转换

Char类型不能和short相互转换

但是:byte和short可以相互转换

基本数据类型从小到大排序:

(Byte<<<short<<<char)<<<int<<<long<<<float<<<double

语法:

数据类型  变量名1=数据;------------小容器

数据类型  变量名2=变量名1;--------大容器

6.2强制类型转换

显式转换

含义:大容器中的数据强制转给小容器

语法:

数据类型  变量名1=数据;-----------大容器

数据类型  变量名2=(数据类型)变量名1;--------小容器

底层原理:

6.2.1一次转换

如果大容器强制转换到小容器,数据没有超出范围

6.2.2二次转换

如果大容器强制转换到小容器,数据超出了取值范围,需要再一次进行转换(底层:移位运算)

注意:

a)      强制类型转换只会强制后面的一个,而不是所有

b)     一个整数与byte、short相互运算时,在运算之前数据的数据类型会自动提升为int类型

/**

 * 需求:

 *     
实现一个数据四舍五入并且保留两位小数

 *     
123.4567

 *

 *     
结果:

 *     
123.46

 */

7.运算符

含义:数据之间相互运算时使用的符号

7.1 算术运算符

符号

描述

+

相加

-

相减

*

相乘

/

相除

+

正数

-

负数

+

拼接

注意:

  1. 如果前面没有遇到字符串,那么后面的数据相运算
  2. 如果前面遇到了字符串,那么后面的数据全部相拼接
  3. 执行顺序从左往右

%

取模

++在前

自增1    先自增,后赋值       别人获取的数据是新值

++在后

自增1    先赋值,后自增       别人获取的数据是旧值

--在前

自减1

--在后

自减1

取模规律1

取模规律1-1

/**

 * 需求:

 *     
int a=2;

 *     
int b=++a;

 *     
int c=--b;

 *     
int d=c++;

 *     
int e=d--;

 *     
int f=(a++)+(b--)-(++c)+(--d)

 *     
求f的值:

 */

7.2 赋值运算符

符号

描述

=

等号右边赋值给等号左边

+=

等号右边运算完(相加)赋值给等号左边

-=

等号右边运算完(相减)赋值给等号左边

*=

等号右边运算完(相乘)赋值给等号左边

/=

等号右边运算完(相除)赋值给等号左边

%=

等号右边运算完(取模)赋值给等号左边

注意:

一个变量与另一个数据相加的结果重新赋值给该变量,称之为叠加

7.3 比较运算符

符号

描述

>

大于

<

小于

>=

大于等于

<=

小于等于

==

双等于

注意:

返回的结果类型只有一种:布尔类型

7.4 逻辑运算符

符号

描述

&

两个条件必须都成立,结果才成立

&&

短路与

两个条件必须都成立,结果才成立

|

两个条件有一个成立,结果就成立

||

短路或

两个条件有一个成立,结果就成立

^

异或

相同为假,相异为真

!

条件结果的反义词

7.5 条件运算符

名称:条件运算符、三木运算符、三目运算符、三元运算符

语法:

条件表达式?数据1:数据2;

条件表达式返回的结果类型:true、false

数据1:当条件表达式为true时,返回数据1给调用者

数据2:当条件表达式为false时,返回数据2给调用者

注意:

返回的数据要么直接使用要么保存

7.5.1入门程序

/**

 * 需求:

 *     
有一个人,判断该人的性别

 *     
如果性别是女,给她买名牌包包

 *     
如果性别不是女,啥也不是

 *

 * 
性别:男性   女性   妖性

 *

 * 
分析:

 *     
1.声明变量保存性别:char

 *     
2.通过性别变量进行判断是否是女性

 *     
3.如果条件成立了,那么返回数据 
给她买名牌包包

 *     
4.如果条件不成立,那么返回数据 
啥也不是

 *

 *     
第二步:条件表达式

 *     
第三步:数据1

 *  
   第四步:数据2

 *

 *     
条件运算符语法:

 *          条件表达式?数据1:数据2;

 */

char sex='女';



//使用条件运算符

System.out.println(sex=='女'?"给她买名牌包包":"啥也不是");

7.5.2需求

/**

 * 需求:

 *     
1.已知两个变量,利用条件运算符获取两个变量中的最大值

 *     
2.已知三个变量,利用条件运算符获取三个变量中的最大值

 *     
3.已知四个变量,利用条件运算符获取四个变量中的最大值

 *     
附加题:

 *          已知四个变量,利用条件运算符获取四个变量中的最大值(嵌套)

 */

//需求一

int a=4,b=5;

System.out.println("两个变量的最大值:"+(a>b?a:b));



//需求二

int a1=4,b1=5,c1=8;

//判断a1和b1的大小

int temp=a1>b1?a1:b1;

//判断temp和c1的大小

int max1=temp>c1?temp:c1;

System.out.println("三个变量的最大值:"+max1);





//需求三

int a2=4,b2=5,c2=8,d2=10;

//1.判断a2和b2的大小  临时变量1保存最大值

int temp1=a2>b2?a2:b2;

//2.判断c2和d2的大小  临时变量2保存最大值

int temp2=c2>d2?c2:d2;

//3.判断临时变量1和临时变量2的最大值

int max2=temp1>temp2?temp1:temp2;

System.out.println("四个变量的最大值:"+max2);



//需求四

int max3=a2>b2?(a2>c2?(a2>d2?a2:d2):(c2>d2?c2:d2)):(b2>c2?(b2>d2?b2:d2):(c2>d2?c2:d2));

System.out.println("四个变量的最大值:"+max3);

8.面试题

8.1 问:说一下=和==区别?

答:

=:赋值运算符

作用:用于给变量赋值

==:比较运算符

作用:比较两个数据是否相等

8.2 问:&和&&的区别?

答:

&:当第一个条件为false时,它还会执行后面的条件

&&:当第一个条件为false时,直接短路

8.3 问:|和||的区别?

答:

|:当第一个条件为true时,它还会执行后面的条件

||:当第一个条件为true时,直接短路

Java基础-数据类型及变量的更多相关文章

  1. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  2. Java基础语法(2)-变量

    title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...

  3. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  4. Java基础-数据类型应用案例展示

    Java基础-数据类型应用案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.把long数据转换成字节数组,把字节数组数据转换成long. /* @author :yinz ...

  5. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  6. java基础数据类型包装类

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  7. Java之数据类型,变量赋值

    Java中的基础数据类型(四类八种): 1.整数型 byte----使用byte关键字来定义byte型变量,可以一次定义多个变量并对其进行赋值,也可以不进行赋值.byte型是整型中所分配的内存空间是最 ...

  8. Java基础二(变量、运算符)

    1.变量2.运算符 ###01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载 ...

  9. Java基础教程(5)--变量

    一.变量 1.变量的定义   正如上一篇教程<Java基础教程(4)--面向对象概念>中介绍的那样,对象将它的状态存在域中.但是你可能仍然有一些疑问,例如:命名一个域的规则和惯例是什么?除 ...

随机推荐

  1. 题解-[SDOI2017]数字表格

    题解-[SDOI2017]数字表格 前置知识: 莫比乌斯反演</> [SDOI2017]数字表格 \(T\) 组测试数据,\(f_i\) 表示 \(\texttt{Fibonacci}\) ...

  2. AcWing 294. 计算重复

    暴力 其实这题的暴力就是个模拟.暴力扫一遍 \(conn(s_1, n_1)\),若出现了 \(res\) 个 \(s_2\). 答案就是 \(\lfloor res / n1 \rfloor\). ...

  3. Python之Windows服务

    1.首先要安装pywin32-220.win-amd64-py2.7.exe 2. SvcDoRun:服务启动的时候会执行的方法 SvcStop:服务停止的时候会执行的方法 # coding=utf- ...

  4. 应用案例——高并发 WEB 服务器队列的应用

    在高并发 HTTP 反向代理服务器 Nginx 中,存在着一个跟性能息息相关的模块 - 文件缓存. 经常访问到的文件会被 nginx 从磁盘缓存到内存,这样可以极大的提高 Nginx 的并发能力,不过 ...

  5. STL——容器(Map & multimap)的拷贝构造与赋值

    1. Map & multimap 的拷贝构造与赋值 map(const map &mp);               //拷贝构造函数 map& operator=(con ...

  6. CD租赁售卖系统javaweb系统展示SSM框架

    一.功能要点 1.管理员登录 2.用户注册登录 3.用户权限,可以查看可借或可买cd,并实现对cd的买租 4.管理员可以添加cd, 5.cd的类型,价格由管理员设置 二.运行环境 数据库mysql: ...

  7. [日常摸鱼]bzoj2463 [中山市选2009]谁能赢呢?

    题意:两个人在$n*n$的棋盘上玩游戏,一开始棋子在左上角,可以上下左右的走到没有走过的地方,最后不能走的那个输,两个人都采取最优决策问哪个赢 猜结论!$n$为偶数则先手赢,否则后手赢. 考虑用$1* ...

  8. Java线程池二:线程池原理

    最近精读Netty源码,读到NioEventLoop部分的时候,发现对Java线程&线程池有些概念还有困惑, 所以深入总结一下 Java线程池一:线程基础 为什么需要使用线程池 Java线程映 ...

  9. SpringBoot事件监听机制及观察者模式/发布订阅模式

    目录 本篇要点 什么是观察者模式? 发布订阅模式是什么? Spring事件监听机制概述 SpringBoot事件监听 定义注册事件 注解方式 @EventListener定义监听器 实现Applica ...

  10. 卡尔曼滤波学习笔记1-Matlab模拟温度例子--代码比较乱,还需优化

    温度模拟参数选取 xk 系统状态 实际温度 A 系统矩阵 温度不变,为1 B.uk 状态的控制量 无控制量,为0 Zk 观测值 温度计读数 H 观测矩阵 直接读出,为1 wk 过程噪声 温度变化偏差, ...