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程序在运行时的内存分布主要如上 ...
随机推荐
- CISCO交换机STP实验(生成树协议)
目录 一.前言:生成树协议(STP) 二.CISCO交换机STP命令汇总 三.运用STP搭建简单拓扑 四.实战:STP综合实验 五.结语 一.前言:生成树协议(STP) 计算机网络中,我们为了减少网络 ...
- 01 C语言基本介绍
C语言特点 容易上手学习 结构化语言 执行效率高 处理的工作和活动偏底层 可以在多种计算机平台上编译(类似Java的跨平台) C语言历史 目前,C 语言是最广泛使用的系统程序设计语言之一 C 语言是最 ...
- win10下安装使用Docker:Docker for Windows
一.下载win10下安装docker和桌面管理的工具: 下载地址:Docker for Windows 安装软件学习地址:https://www.runoob.com/docker/docker-tu ...
- 主厨(第4部分)- ASP. netNET Core和Angular 2 CRUD SPA
下载source - 79.7 KB 介绍 在Master Chef(第1部分)和Master Chef(第2部分)中,我介绍了如何使用ASP.Net Core和Angular JS.在Master ...
- 8.Android-简单的登录案例编写
本章来学习登录案例,由于还未学习自定义控件外观,所以ui界面先用最简单的,并保存登录账号密码到data/data/包名/files下 1.学习之前需要掌握的Context类(通过Context来往AP ...
- 文件上传-阿里云OSS-存储文件
JS上传文件到阿里云OSS OSS支持流式写入和读出.特别适合视频等大文件的边写边读业务场景. 注意在OSS的控制台:跨域管理中设置允许的方法 <script> var client = ...
- python中input()函数与print()函数
一.input()函数详解 二.print()函数详解 三.类型转换
- Android ContentProvider 基本原理和使用详解
ContentProvider(内容提供者)是 Android 的四大组件之一,管理 Android 以结构化方式存放的数据,以相对安全的方式封装数据(表)并且提供简易的处理机制和统一的访问接口供其他 ...
- centos8平台使用rz/sz上传下载文件
一,rz/sz的用途 1,rz,sz是Linux/Unix服务器同客户端通过ZModem进行文件传输的命令行工具 说明:客户端需要使用支持ZModem的telnet/ssh客户端(比如windows平 ...
- xpath教程-逐层检索和全局检索 转
逐层检索和全局检索 布啦豆 11203 本节主要介绍用xpath来描述html的层级关系 主要使用到的知识点如下: 单独的一个点 .,表示当前位置 两个点 ..,表示上一级父标签的位置 单独的一个 ...