Java_基础(一)
注释
- 单行注释:
// - 多行注释:
/*开头,*/结尾, 可跨行, 可嵌入
public static void main(String[] args/* 哈哈 */) - 文档注释:
/**开头,*/结尾, 可以通过JDK提供的Javadoc命令生成程序的API文档
标识符
用于给变量, 常量, 方法, 类, 包等命名
规则:
- 由字母, 数字, 下划线, $组成, 注意不能以数字开头
- 大小写敏感, 长度无限制
- 不能是Java关键字
命名规范:
- 所有变量, 方法, 类名要做到见名知其意
- 常量: 全部字母大写, 单词之间有下划线隔开
- 类成员变量: 首字母小写, 后面每个单词首字母大写
- 局部变量: 首字母小写, 后面每个单词首字母大写
- 类名: 每个单词的首字母大写
- 方法名: 首字母小写, 后面每个单词首字母大写
关键字
| abstract | assert | boolean | break | byte | case |
| catch | char | class | const | continue | default |
| do | double | else | extends | final | finally |
| float | for | goto | if | implements | import |
| instanceof | int | interface | long | native | new |
| null | package | private | protected | public | return |
| short | static | strictfp | super | switch | synchronized |
| this | throw | throws | transient | try | void |
| volatile | while |
变量及数据类型
变量: 可操作的存储空间
变量分类: 局部变量, 成员变量(实例变量), 静态变量
局部变量: 必须初始化, 先声明后赋值, 否则报错
成员变量: 从属于对象, 自动初始化,
| 类型 | 初始值 |
| boolean | false |
| char | \u0000 |
| byte | (byte)0 |
| short | (short)0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0 |
| 引用类型 | null |
静态变量: 从属于类,

二进制整数表示方法: 0b或0B开头, 如0b101
八进制整数表示方法: 以0开头, 如013
十六进制整数表示方法: 0x或0X开头, 如0x11
运算符
| 一元算数运算符 | ++、-- |
| 二元算数运算符 | +、-、*、/、% |
| 赋值运算符 | = |
| 扩展运算符 | +=、-=、*=、/= |
| 关系运算符 | >、<、>=、<=、==、!=、instanceof |
| 逻辑运算符 | &、|、!、&&(短路与)、||(短路或)、^(异或) |
| 位运算符 | &、|、^、~、>>(无符号右移, 左边空位补0)、<<(左移, 右边空位以补0)、>>>(无符号右移, 左边空位补0) |
| 条件运算符 | ?: |
| 字符串连接符 | + |
整数运算:
两个操作数有一个为long, 则结果为long
没有long时, 结果为int类型, 即使操作类型全部为short, byte
浮点运算:
两个操作数只要有一个为double类型, 则结果为double类型
两个操作数都是float类型, 则结果为float类型
除法运算符
运算符两边若都为整型, 则结果为整型, 只要有一个为浮点型, 结果就为浮点型
取模运算符
其操作数可以为浮点数, 一般使用整型, 结果符号同操作符左边操作数一样
关系运算符
==、!=、可对所有数据类型(基本和引用)都可使用
<、<=、>、>=仅对数值类型及char类型有效
逻辑运算符:
短路与和短路或采用短路的方式, 即运算符左边的操作数能够是逻辑判断成立, 则不会继续计算操作符右边的表达式
位运算符:
&和|既是逻辑运算符, 又是位运算符, 如果操作符两边都是boolean类型, 就为逻辑运算符, 如果操作符两侧都是整数型就是位运算符
字符串连接运算符
只要有一个操作数是字符串, 自动变为字符串相连
运算符优先级(单目>算术>关系>逻辑>条件>赋值)
| 优先级 | 运算符 | 类 | 结合 |
| 1 | () | 括号运算符 | 由左至右 |
| 2 | !、+(正号)、-(负号) | 一元运算符 | 由左至右 |
| 2 | ~ | 位逻辑运算符 | 由右至左 |
| 2 | ++、-- | 递增与递减运算符 | 由右至左 |
| 3 | *、/、% | 算术运算符 | 由左至右 |
| 4 | +、- | 算术运算符 | 由左至右 |
| 5 | <<、>> | 位左移、位右移 | 由左至右 |
| 6 | >、>=、<、<= | 关系运算符 | 由左至右 |
| 7 | ==、!= | 关系运算符 | 由左至右 |
| 8 | & | 位运算符、逻辑运算符 | 由左至右 |
| 9 | ^ | 位运算符、逻辑运算符 | 由左至右 |
| 10 | | | 位运算符、逻辑运算符 | 由左至右 |
| 11 | && | 逻辑运算符 | 由左至右 |
| 12 | || | 逻辑运算符 | 由左至右 |
| 13 | ?: | 条件运算符 | 由右至左 |
| 14 | =、+=、-=、*=、/=、%= | 赋值运算符、扩展运算符 | 由右至左 |
类型转换
运算中相邻两个操作数先转化为同一类型, 转换从低级到高级, 然后进行运算
类型转换方向
低 ---------------------------------------> 高
byte-->short, char-->int-->long-->float-->double
自动类型转换指容量小的数据类型可以自动转换为容量大的数据类型
当将一种类型强制转换成另一种类型, 而又超出了目标类型的表示范围, 就会被截断成为一个完全不同的值

整型常量默认是int类型
long i = 7400000000; // 超出默认int类型值的范围
long j = 7400000000L; // 表明是7400000000是long类型
可以将整型常量直接赋值给byte, short, char等类型变量, 而不需要进行强制类型转换, 只要不超出其表数范围
short i = 12; // 合法
short b = 1234567; // 非法
浮点型常量默认是double类型
flout = 3.14; // 报错, 3.14默认是double类型
float = 3.14F; // 加F后表明3.14是float类型
- =右侧: 所有变量先转换为字节数最多的数据类型, 再计算
- =两侧: 左侧宽度>右侧宽度 自动转换
- =两侧: 左侧宽度<右侧宽度 强制转换
多余部分
switch结构: 根据表达式值的不同可以执行许多不同的操作.switch语句中case标签在JDK1.5之前必须是整型(long类型除外)或者枚举,不能是字符串类型, 在JDK1.7之后允许使用字符串String
break: 用于强行退出循环, 不执行循环中剩余的语句
continue: 用于终止某次循环过程, 跳出循环体中尚未执行的语句, 接着进行下一次循环的判断, 满足循环条件继续循环, 不满足则跳出循环
break、continue可以带标签
语句块可以使用外部的变量, 由于语句块内定义的变量作用域仅限语句块内, 所以外部不能使用语句块中定义的变量
哎, 明天又要汇报了!!!
Java_基础(一)的更多相关文章
- Java_基础篇(数组排序)
Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.le ...
- 【Java_基础】JVM内存模型与垃圾回收机制
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器( ...
- Java_基础篇(数组的反转)
数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换 ...
- java_基础_异常
之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static voi ...
- 【Java_基础】并发、并行、同步、异步、多线程的区别
1. 并发:位于同一个处理器上的多个已开启未完成的线程,在任意一时刻系统调度只能让一个线程获得CPU资源运行,虽然这种调度机制有多种形式(大多数是以时间片轮巡为主).但无论如何,都是通过不断切换需要运 ...
- 【Java_基础】Java的访问权限控制
1.类成员的访问权限控制 Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 p ...
- 【Java_基础】java类加载过程与双亲委派机制
1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为 ...
- java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度
package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫( ...
- java_基础_关于父类继承的问题
关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向 ...
- Java_基础_内存管理
把没几多年,完全忘记了把自己学的东西记录下来了,现在也基本不知道怎么去记录会更好了,不过好歹妹是把住了~也要毕业了,继续回来写东东记录自己的学习...... 一个Java程序在运行时的内存分布主要如上 ...
随机推荐
- 【音乐爬虫】Python爬虫-selenium+browsermob-proxy 解决动态网页 js渲染问题
1.一般的python爬虫很简单,直接请求对应网址,解析返回的数据即可,但是有很多网站的数据的js动态渲染的,你直接请求是得不到对应的数据的 这时就需要其它手段来处理了. 2.以一个例子来说明,整个过 ...
- 【题解】X龙珠
明天好像要考链表今晚笔者来了解下. 题目链接 解: 对于这道题,由于前面要与后面重新连起来,于是我们考虑链表. 我们先正常用链表维护关系.然后,我们从大到小枚举. 对于这个数,如果它后面有数(因为是一 ...
- Nginx作为反向代理时传递客户端IP的设置方法
因为nginx的优越性,现在越来越多的用户在生产环境中使用nginx作为前端,不管nginx在前端是做负载均衡还是只做简单的反向代理,都需要把日志转发到后端real server,以方便我们检查程序的 ...
- OracleOggan安装并测试同步数据步骤!
Oracle Golden Gate (ogg)安装使用说明 Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递等功能. OGG支持的异构环境有: OGG的特性: ①对生 ...
- shell-字符串多操作符综合实践多案例
1. 字符串测试举例 提示:下面的$file并未定义,而$file1 在上面测试中已定义. 范例1:单条件字符串测试: [root@test-1 ~]# file1=/etc/services ...
- Python+Appium自动化测试(13)-toast定位
一,前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断 ...
- CDH5部署三部曲之二:部署和设置
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 多测师讲解selenium--常用关键字归纳-_高级讲师肖sir
常见的定位方式: 1.通过id定位 id=kw 2.通过name定位 name=wd 3.通过xpath相对路径定位:xpath=//*[@id="kw"] 4.通过两个属性值定位 ...
- day29 Pyhton 面向对象 继承进阶
一.内容回顾 初识继承 父类\基类\超类 子类\派生类 派生 :派生方法.派生属性 单继承 继承的语法class子类名(父类名) 解决开发中代码冗余的问题 子类继承了父类之后,可以调用父类中的方法 如 ...
- OpenCV计算机视觉学习(5)——形态学处理(腐蚀膨胀,开闭运算,礼帽黑帽,边缘检测)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 形态 ...