JavaSE的基本语法
JavaSE基本语法
一、语法的注意事项
1、严格区分大小写
2、每句命令结尾使用分号
3、符号都是英文状态
4、括号、引号都是成对出现的!
5、注意缩进
Tips:
- 文件名和类名可以不一致,但public修饰的类必须和文件名一致!
- 同一个java文件下,有几个class就有几个“.class”文件
- 同一个java文件下,只能有一个public class 类,并且该类的类名必须与java文件的文件名一致。
- 当java下有很多类时,可以使用 java + 编译好的类进行使用。
二、变量
定义:
内存中的一块数据存储空间的表示
变量的分类:按照类型分类
基本数据类型和引用数据类型

按照声明的位置分类
成员变量:类内、方法体外声明的变量
局部变量:方法体内声明的变量二者在初始化值方面的异同:
同:都有生命周期。
异:局部变量除形参外,需显示初始化。
变量三要素
数据类型
字节和位的转换
整型特点:
1、编译器默认的整型类型是int。
2、如果希望将整型的常量值表示成long类型,则需要在数值后面加l或L。
3、每种数据类型存储的常量值必须在能表述的范围内,否则报错。
浮点型特点:
1、编译器默认的浮点型是double,如果希望当做float,则需要在数值后面加f或符F。
2、浮点数在计算机底层的存储,会丢失精度,所得出的数是一个无限接近于真值的数。如果希望提高精确度,可以用BigDecimal类
字符型特点:
标识符
1、标识符的命名规则
由26个英文字母大小写,0--9,_或$符号
数字不可以开头
不可以使用关键字或保留字,允许包含
严格区分大小写,长度有限制
2、标识符的命名规范
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
存储的数据
变量的数据转换
自动类型转换:容量小的类型自动转换为容量大的数据类型。
byte、short、char之间不会进行数据转换,他们三者首先进行int类型转换。
boolean类型不与其他数据类型进行转换。
当任何其他基本数据类型与字符串类型进行(+)运算时,基本数据类型自动转换为字符串类型。
需要注意的是:
自动类型转换无语法,可自动转换。
强制类型转换(大转小):
数据类型 变量名 = (目标类型)数值;
注意:强转只对最近的数值起作用
byte a = (byte)3.5 * 10 + 2.5 * 20; // 错误
byte a = (byte)(3.5 * 10 + 2.5 * 20); // 正确
默认的数据类型
1、整型数值默认为:int
2、byte、short、char 之间进行运算,结果值的类型为int
3、注意拼接运算,“看到底是先运算还是先拼接“
system.out.println("hello"+'a'+12); // helloa12
system.out.println('a'+12+"hello"); // 109hello
三、运算符
自增自减运算符
如果作为独立语句使用,则i++;等价于++i;等价于i=i+1;
如果作为表达式使用,则:int j= i++; 先赋值后自增;iint j= ++i; 先自增后赋值
short s = 3;
s = s+2;// 强转语句错误
s += 2; // 等价于 s = (int)(s+2);复合赋值运算符底层做了优化,进行了内部强转,效率较高!
自增运算练习
//自增运算问题
class Test{
public static void main(String[] args){
int j = 1;
/*
j += ++j * j++;相当于
j = j + (++j * j++);
(1)先算右边
①先取j=1的值
②++j
A:j自增 j=2
B:取j=2的值
③j++
A:先取j=2的值
B:自增j=3
④乘法
2*2 = 4
⑤加法
1 + 4
⑥赋值
j = 5
*/
j += ++j * j++;
System.out.println(j);
}
}
逻辑运算符
&&:如果第一个条件不成立,则不再判断第二个条件,直接结果为false。
判断条件的顺序影响着程序的运行结果。
if (newI >= 0 && newI < lengthX
&& newJ >= 0 && newJ < lengthY
&& board[newI][newJ] == words[index]
&& !tof[newI][newJ])
if (board[newI][newJ] == words[index]
&&newI >= 0 && newI < lengthX
&& newJ >= 0 && newJ < lengthY
&& !tof[newI][newJ])
三元运算符
格式:条件表达式?表达式1:表达式2;
运算规则:判断条件表达式的结果是否成立,如果成立,则执行表达式1,否则执行表达式2
位运算符
常见的位运算符:
a<<b 左移:将a左移指定的b位,空缺位补0
a>>b 右移:将a右移指定的b位,空缺位补符号位
a>>>b无符号右移:将a右移指定的b位,空缺位补0
a&b与:两位都为1,结果为1,反之为0
a|b或:两位都为0,结果为0,反之为1
位运算练习
面试题15:二进制中1的个数
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。
public int hammingWeight(int n) {
int count = 0;
while (n !=0){
count = count +1;
n = n & (n-1);
}
return count;
}
四、进制
(1)概述
所有数字在计算机底层都以 形式存在。
对于整数,有四种表示方式:
(2)二进制
java整数常量默认为int类型,占32位,第32位为符号位
如果为long类型,占64位,第64位为符号位
二进制整数有如下三种形式:
1.原码:将整数直接转化为二进制形式。最高位为符号位。
2.负数的反码:对原码按位取反,符号位为1。
3.负数的补码:反码加1。
4.需要注意的是:正数的原码、反码、补码皆一致。
计算机以二进制补码的形式保存所有的整数。
(3)为什么要使用原码、反码、补码表示形式呢?
计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
特殊值:-128
-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就应该是-128。
但是此时-128,如果用补码到反码,再到原码去计算是不对的。

JavaSE的基本语法的更多相关文章
- JavaSE的基础语法之标识符:
标识符(掌握) (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组成规则: A:英文大小写字母 B:数字 C:$和_ (3)注意事项: A:不能以数字开头 B:不能是java中的关键字 C: ...
- JavaSE复习~基本语法规则
java程序的基本结构 java程序的文件后缀为 .java 一个java文件中可以写许多内容,但有且只能有一个 public 修饰的 class 类(class)是Java程序中所有源代码的基本组成 ...
- JavaSE之概述与基本语法
嘛,这个本来应该发在OOP之前的,无所谓了,补发一下,这篇文章只会对JavaSE的语法做一个基本的概述而已,我会在最近新开一个新坑,也就是JavaEE系列,以后还会有Cpp(相对于C++,我还是更喜欢 ...
- javaSE学习路线
Java SE大致可分为以下几块内容: n 对象导论:如何用面向对象的思路来开发 n 深入JVM:Java运行机制以及JVM原理 n 面向对象的特征:封装.继承.抽象.多态 n 数组和容器:容 ...
- Django框架
一.首先,到底什么是框架? 想要回答这个问题,我们要慢慢来. ①首先从DRY原则开始说起 Don't Repeat Yourself,不要重复你的代码. DRY原则的重要性怎么提都不过分,很多人说编程 ...
- 如何系统的学习Java
初学者记住一点,学习Java一定是连续性的且循序渐进的“系统化”学习,首先我给你提供一个优秀Java工程师的学习路线. web前端方面:html.css,Java.jQuery.xml解析.Boots ...
- Java思维理清思路
Java思维导图 学习方法: 针对性学习 引导式学习 对比式学习 总结式学习 Java简介: 简单性,面向对象,分布式,健壮性,安全性,平台独立与可移植性,多线程,多态性等. Java三大体系:Jav ...
- 《温故而知新》JAVA基础一
一:基本环境 种类 javaSE(核心语法)+javaME(移动设备)+Java EE(JSP/服务等) JVM(java虚拟机) abc.java(源文件)--编译器--abc.class 字节码文 ...
- Servlet + JSP 时代
Spring,Django,Rails,Express这些框架技术的出现都是为了解决什么问题,现在这些框架都应用在哪些方面? - 知乎 https://www.zhihu.com/question/2 ...
随机推荐
- 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据
上一篇文章(https://www.cnblogs.com/meowv/p/12943699.html)完成了项目的全局异常处理和日志记录. 在日志记录中使用的静态方法有人指出写法不是很优雅,遂优化一 ...
- [256个管理学理论]003.鳄鱼法则(Alligator Principle)
鳄鱼法则(Alligator Principle) 来自于大洋彼岸的让你看不懂的解释: 这是经济学交易技术法则之一,也叫“鳄鱼效应”,它的意思是:假定一只鳄鱼咬住你的脚,如果你用手去试图挣脱你的脚,鳄 ...
- 设计Dog类 代码参考
#include <iostream> #include <string> using namespace std; class Dog { private: string n ...
- Matlab矩阵学习三 矩阵的运算
Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同 二.数乘 三.乘法 矩阵乘法 ...
- 如何开启远程桌面连接功能?windows的远程桌面连接功能使用步骤
由于远程桌面的诞生,为电脑工作者提供了极大的便利.首先,推荐1款比较适合服务器管理的远程桌面: 可以管理1000+服务器/vps的远程桌面:IIS7远程桌面管理 开启远程桌面功能步骤: 1.右键点击电 ...
- Java实现洛谷 P1873 砍树(StreamTokenizer+IO+二分)
P1873 砍树 输入输出样例 输入 5 20 4 42 40 26 46 输出 36 PS: get新知识,以前只知道STringTokenizer并没有了解过StreamTokenizer,这次才 ...
- Java实现派(Pie, NWERC 2006, LA 3635)
题目 有F+1个人来分N个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 输入的第一行为数据组数T.每组数据的第一行为两个整数N和 ...
- Java实现 蓝桥杯VIP 算法提高 Torry的困惑(提高型)
算法提高 Torry的困惑(提高型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题 ...
- Java实现寻找和为定值的多个数
1 问题描述 输入两个整数n和sum,要求从数列1,2,3,-,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题是典型的背包问题的应用,即先找出n个数 ...
- vue的第一个commit分析
为什么写这篇vue的分析文章? 对于天资愚钝的前端(我)来说,阅读源码是件不容易的事情,毕竟有时候看源码分析的文章都看不懂.每次看到大佬们用了1-2年的vue就能掌握原理,甚至精通源码,再看看自己用了 ...