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程序在运行时的内存分布主要如上 ...
随机推荐
- RHSA-2017:2029-中危: openssh 安全和BUG修复更新(存在EXP、代码执行、本地提权)
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...
- TP5 调用快递鸟api 查询快递信息
1,去快递鸟,下载sdk https://www.kdniao.com/api-track 下载PHPsdk 2,下载下来的事PHP文件,不是以类的形式显示的,所以为了方便,我把他封装成了类,不需要封 ...
- 扩展、接管MVC都不会,还会用Spring Boot?
持续原创输出,点击上方蓝字关注我 目录 前言 Spring Boot 版本 如何扩展MVC? 如何自定义一个拦截器? 什么都不配置为什么依然能运行MVC相关的功能? 如何全面接管MVC?[不推荐] 为 ...
- node将js中的json对象生成到新的excel表中
第一步 安装依赖包 npm install json2xls fs 第二步 创建node.js文件,文件内代码如下: var fs = require('fs'); var path = re ...
- MeteoInfo脚本示例:读取FY3A AOD HDF文件
FY3A卫星有AOD产品数据,HDF格式,这里示例用MeteoInfo脚本程序读取和显示该类数据. 脚本程序如下: #----------------------------------------- ...
- linux centos 02
1.PS1变量,命令提示符的修改 PS1="[\u@\h \W]\$" \u 代表 用户 @ 占位符 \h 主机名 \W 工作路径的最后一位 \t \w 工作路径 ...
- day42 Pyhton 并发编程05
一.内容回顾 # 线程 # 正常的编程界: # 进程 # 计算机中最小的资源分配单位 # 数据隔离 # 进程可以独立存在 # 创建与销毁 还有切换 都慢 给操作系统压力大 # 线程 # 计算机中能被C ...
- set的运用 例题5-3 安迪的第一个字典(Andy's First Dictionary,Uva 10815)
#include<bits/stdc++.h>using namespace std;set<string> dict;int main(){ string s, buf; w ...
- python 不定长参数
1 #不定长参数 * 元祖 ** 字典 2 def item(a,b,*c,**d): 3 print(a) 4 print(b) 5 print(c) 6 print(d) 7 8 item(11, ...
- 扫描仪扫描文件处理-ABBYY自动矫正图像歪斜
修改界面语言: 设置为不识别图片文字(因为我们只需要把图片歪斜校正): 保存无损彩色格式: