注释

  • 单行注释: //
  • 多行注释: /*开头, */结尾, 可跨行, 可嵌入
    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

静态变量: 从属于类,

二进制整数表示方法: 0b0B开头, 如0b101

八进制整数表示方法: 以0开头, 如013

十六进制整数表示方法: 0x0X开头, 如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_基础(一)的更多相关文章

  1. Java_基础篇(数组排序)

    Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.le ...

  2. 【Java_基础】JVM内存模型与垃圾回收机制

    1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器( ...

  3. Java_基础篇(数组的反转)

    数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换 ...

  4. java_基础_异常

    之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static voi ...

  5. 【Java_基础】并发、并行、同步、异步、多线程的区别

    1. 并发:位于同一个处理器上的多个已开启未完成的线程,在任意一时刻系统调度只能让一个线程获得CPU资源运行,虽然这种调度机制有多种形式(大多数是以时间片轮巡为主).但无论如何,都是通过不断切换需要运 ...

  6. 【Java_基础】Java的访问权限控制

    1.类成员的访问权限控制 Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 p ...

  7. 【Java_基础】java类加载过程与双亲委派机制

    1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为 ...

  8. java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度

    package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫( ...

  9. java_基础_关于父类继承的问题

    关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向 ...

  10. Java_基础_内存管理

    把没几多年,完全忘记了把自己学的东西记录下来了,现在也基本不知道怎么去记录会更好了,不过好歹妹是把住了~也要毕业了,继续回来写东东记录自己的学习...... 一个Java程序在运行时的内存分布主要如上 ...

随机推荐

  1. requests和正则表达式爬取猫眼电影Top100练习

    1 import requests 2 import re 3 from multiprocessing import Pool 4 from requests.exceptions import R ...

  2. Mat对象与像素操作 OpenCV C++

    Mat对象,分为两个部分,头部和数据部分 Mat对象拷贝之后是相互独立的 Mat对象有三种创建方法 CV_8UC1单通道,CV_8UC2双通道,CV_8UC3三通道,通道数 Scalar(0-255, ...

  3. 达梦产品技术支持培训-day7-DM8数据库备份与还原-原理

    (本文部分内容摘自DM产品技术支持培训文档,如需要更详细的文档,请查询官方操作手册,谢谢) 1.DM8备份还原简介 1.1.基本概念 (1)表空间与数据文件 ▷ DM8表空间类型: ▷ SYSTEM ...

  4. 获取url中带的参数

    本文目前只针对url中一个参数的 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + ...

  5. java -inally转

    1.不管有木有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没有返 ...

  6. C# 范型约束 new() 你必须要知道的事

    C# 范型约束 new() 你必须要知道的事 注意:本文不会讲范型如何使用,关于范型的概念和范型约束的使用请移步谷歌. 本文要讲的是关于范型约束无参构造函数 new 的一些底层细节和注意事项.写这篇文 ...

  7. 发布MeteoInfo 1.2.3

    提升了对GeoTiff格式数据的读取能力(多个tiles).当然还有MeteoInfoLab功能的提升.下载地址:http://yun.baidu.com/share/link?shareid=669 ...

  8. Asp常见函数

    ASP语言的特点: 1.允许使用VBscript或java script简易Script语言,并可在文件中结合Html: 2.无需编译,由WEBserver执行产生: 3.与任何ActiveX Scr ...

  9. docker registry 记录

    部署 运行下面命令获取registry镜像 docker pull registry 下载到的版本默认为 docker.io/registry latest 将registry镜像运行并生成一个容器 ...

  10. Django基础之Ajax

    知识预览 Ajax前戏:json Ajax简介 Jquery实现的ajax JS实现的ajax Ajax前戏:json 什么是json? 定义: JSON(JavaScript Object Nota ...