Java Day 2
标识符
凡是变量中需要自己命名的地方都是标识符,例如:包名、类名、变量名等等
标识符的命名规则
1.Java的标识符只能用26个英文字母大小写,0-9的数字,下划线(_),和美元的符号($).
2.标识符中不能含空格
3.数字不呢个开头
4.不能用关键字和保留字和特殊值,例如基本数据类型byte int 等与false,true,null,void等
5.Java严格区分大小写
6.Java标识符的长度没有限制,但不宜太长
标识符的命名规范
1.总原则,见名知意,有意义
2.类名,接口名:所有单词首字母大写 例如:XxxYyyZzz
3.变量名:第一个单词首字母小写其余首字母大写 例如:xxxYyyZzz
4.包名:所有字母都小写,不同单词用 . 分开 例如:java.lang
5.常量名:所有单词都大写,单词之间使用下划线 _ 例如:MAX_VALUE
变量
变量是代表内存中的一块存储区域
变量三要素
1.变量名:给这块存储区域命名,就不用内存地址访问
2.变量值:这块内存中存的数据
3.数据类型:决定这块内存的大小
使用要求
1.先声明后使用:声明格式:数据类型 变量名
2.使用之前必须赋值:赋值格式: 变量名 = 值 (这个值可以是常量,表达式)
3.变量的作用域:从声明处开始,到其所属的 } 结束,并且同一个作用域不能重名
数据类型
基本数据类型
整型
byte:占一个字节,储存范围(-128 - 127)
short:占两个字节
int:占四个字节 默认类型
long:占八个字节,需要在数字后面加L或者小写的 l
浮点型
float:占四个字节,需要在数字后面加F或者小写的 f
double:占八个字节,默认类型
字符型
char:占两个字节,存储的是Unicode编码,
布尔型
boolean:只能赋值true 或 false
基本数据类型转换
1.自动类型转换:double-->float-->long-->int-->byte,short,char
2.强制类型转换:需要强制类型转换符(类型),但是有可能丧失精度
引用数据类型
类:例如 String Syetem
接口
数组
运算符
算数运算符
正号:+
负号:-
加:+
减:-
乘:*
除:/(当整数与整数相除,结果只保留整数部分,当整数与整数相除,被除数/除数 ,除数不能为0,报异常,当浮点数相除,如果除数为0,结果是无穷大,非数字)
取余取模:%(会忽略模数的负号)
自增:++(i++:这个表达式的结果是与i自增前的结果一样,++i:这个表达式的结果是与i自增后的结果一样)
自减:--(同自增)
赋值运算符
基本赋值运算符=:把右边的结果赋值给左边的变量
扩展赋值运算符:+=,-=...... 隐含强制类型转换 例如short s = 6;s+=1; 等价于 s = (short)(s + 1)
比较运算符
大于:>
小于;<
大于等于:>=
小于等于:<=
不等于:!=
instanceof:比较对象是否时类产生的
结果一定是boolean值,所以比较表达式常用于条件表达式
逻辑表达式
逻辑与:& 只有左右两边的值都为true,结果才为true
逻辑或:| 只要左右两边的值有一个为true,结果就为true
逻辑异或:^ 只有左右两边一个为true,另一个为false,结果才为true
逻辑非:! !true 即为false !fales即为true
短路与:&& 结果与&一样 只有左右两边的值都为true,结果才为true 不同的是 如果左边的表达式为false,右边的表达式就不计算了,出现短路现象
短路或:|| 结果与|一样 只要左右两边的值有一个为true,结果就为true 不同的是 如果左边的表达式为true,右边的表达式就不计算了,出现短路现象
条件运算符(也叫三目运算符)
格式:条件表达式 ? 表达式1 : 表达式2
整个表达式的结果看条件表达式,如果条件表达式为true,那么就取表达式1的结果,否则取表达式2的结果
位运算符就不说了,基本用不上,实在是想学的去找一下资料
Java Day 2的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- 使用kubeadm方式搭建K8S集群
使用kubeadm方式搭建K8S集群 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Ma ...
- win10系统VMWare16 Pro 安装CentOS8
目录 一.本机环境与问题解决 二.下载软件 三.VMWare16 Pro安装 四.CentOS8 安装 一.本机环境与问题解决 装了好几遍,感觉坑都踩了一遍,泪奔~,还好终于跑起来了! 查看电脑是否开 ...
- kubernetes_CoreDNS全解析
一.前言 kubernetes CoreDNS 是 kube-system 命令空间里面的一个Pod,用于域名解析. kubernetes自带三个命名空间(用kubeadm安装的Kubernetes集 ...
- Codeforces Round #834 (Div. 3) A-G
比赛链接 A 题目 知识点:模拟. 确定开头字母,然后循环比较即可. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 题解 #include <bits/stdc++.h> # ...
- Day18.2:对象创建的内存分析图解
对象创建的内存分析 我们从两块最常用的内存空间对对象创建进行内存分析 堆内存:存放的是对象的具体信息:在程序之中堆内存空间的开辟是通过new完成的 栈内存:存放的是对象的地址信息,即通过地址找到堆内存 ...
- jQuery类库
jQuery介绍 1. jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行A ...
- 铁威马NAS如何开启二次验证提高系统安全性
想到登录TNAS时更安全?直接开启OTP二次验证,通过 TNAS mobile生成的一次性密码登录NAS存储,简单设置,提升TOS系统访问安全性给你TNAS双重保护. 1.首先,确认你的TOS系统在5 ...
- 终于弄明白了 RocketMQ 的存储模型
RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型 . 这篇文章,笔者按照自己的理解 , 尝试分析 RocketMQ 的存储模型,希望对大家有所启发. 1 整体概览 首先温习下 Rocket ...
- .NET6使用NLog向文件、数据库写数据
1.Nuget 引入 NLog NLog.Web.AspNetCore NLog.Database(写入数据库使用) 2.创建nlog.config 注意数据库连接字符串需要配置TrustServer ...
- 探究SQL SERVER 更改跟踪
1.介绍 SQL SERVER在2008以上的版本提供两个用于数据库中跟踪数据更改的功能:变更数据捕获(CDC)与更改跟踪(CT).这两个功能使应用程序能够确定对数据库中的用户表所做的 DML 更改( ...