注释

  • 单行注释: //
  • 多行注释: /*开头, */结尾, 可跨行, 可嵌入
    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. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  2. C++重载>>和<<(输入和输出运算符)详解

    转载:http://c.biancheng.net/view/2311.html 在C++中,标准库本身已经对左移运算符<<和右移运算符>>分别进行了重载,使其能够用于不同数据 ...

  3. PropertySheet外壳扩展AppWizard

    下载source files - 39 Kb 下载Wizard - 17 Kb 本文旨在简化属性表外壳扩展的实现.它紧接我的第一篇文章 处理上下文菜单壳扩展和灵感 由Michael Dunn最优秀的系 ...

  4. vue拼图动画Demo

    这是一个基于vue的Demo,可以实现拼图动画,但是具体的没有写拼图成功的逻辑,鼠标悬停移动.周期刷新 我把它放到的我的博客园界面上了.刷新界面可以看到. 演示地址 :https://liruilon ...

  5. 跟着动画学习 TCP 三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地 ...

  6. AntDesign初体验

    AntDesign初体验 作为一个java开发也需要掌握一定的前端开发技能,毕竟靠人不如靠自己.再者,有时候一些小的改动自己就可以搞定了,就不用低三下四去求别人了: 安装Nodejs $ npm in ...

  7. MeteoInfoLab脚本示例:Streamline流线图

    绘制Stramline流线图的函数是streamline,需要两个变量(U/V分量或者风向/风速).脚本程序: f = addfile('D:/Temp/GrADS/model.ctl') u = f ...

  8. MeteoInfoLab脚本示例:创建netCDF文件(合并文件)

    在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例.1.创建一个可写入的netCDF文件对象(下面用ncfile表示 ...

  9. 2020年9月程序员工资统计,平均14459元!你给程序员拖后腿了吗?https://jq.qq.com/?_wv=1027&k=JMPndqoM

    2020年9月全国招收程序员362409人.2020年9月全国程序员平均工资14459元,工资中位数12500元,其中95%的人的工资介于5250元到35000元. 工资与上个月持平,但是岗位有所增加 ...

  10. spring boot:用cookie保存i18n信息避免每次请求时传递参数(spring boot 2.3.3)

    一,用cookie保存i18n信息的优点? 当开发一个web项目(非api站)时,如果把i18n的选择信息保存到cookie, 则不需要在每次发送请求时都传递所选择语言的参数, 也不需要增加heade ...