JavaSE(一)
1.标识符
标识符是由数字,字母,下划线,$ 等进行命名的符号,但是不可以以数字开头;
标识符包含了关键字,变量名,他人定义,自己定义的。
2.关键字
关键字是指有特殊用途的符号。由以下50种构成
3.数据类型,常量和变量
a.数据类型
数据类型:分为基本数据类型和引用数据类型
1.基本数据类型
有4类8种 分别是: 整数型(byte,short,int,long),浮点型(float,double), 字符型(char), 布尔型(boolean)
不同的基本数据类型在内存中占用的空间不同,在内存中存储的是数据本身。
一个字节在内存中占8位,位中通过存储0和1表示2进制数据。字节越多空间越大,存储的范围越大。注:bit:比特,指的是二进制的位数
字符是通过ASCII码值存储在内存中,只有一个字节就够了,但是中文一个字节就不够了。现在需要两个字节。现在通用的码表 utf-8;
byte,short,char—> int —> long—> float —> double //看的是空间大小
如果由空间小的数据类型转换为空间大的数据类型,进行自动类型转换
如果由空间大的数据类型转换为空间小的数据类型,需要强制类型转换
2.引用数据类型
除了上述基本类型的变量,其余的都是引用数据类型。 最常用的就是String
引用类型在内存中存储的是保存数据的地址,常用十六进制的地址
String s = new String("HelloWorld") 声明了一个类型为String 的变量 s 保存在栈里面,但是s并没有指向new出来的对象。而是保存了这个对象在堆里面的地址
b.常量
常量是指在随着程序运行不会改变的值,就像圆周率一样;
常量在内存在储存在常量池中
1.字面常量
-整型字面常量 如:1 ,2 ,3 ,4;
-浮点型字面常量 如:1.1 ,2.0 , 6.3;
-字符字面常量 如: 中,国;
-布尔常量 如:true false
2. 符号变量
-符号变量就是给常量取一个名字
-常量名的命名规则:见名知意,约定俗成:全部字母大写
-定义一个常量语法:final 数据类型 常量名 = 值
c.变量
1.本质是在内存中划分一个空间来储存数据,该空间内的数据在程序运行过程中允许发生变化,跟数学里设置一个未知数x类似
2.变量名的命名规则:驼峰命名法,见名知意,约定俗成
3.定义一个变量语法:数据类型 变量名 = 变量值
4.运算符
a.算术运算符
+ - * / % 加减乘除模
//取余的只跟被除数(8)的符号有关
system.out.println(8%5) 3
system.out.println(8%-5) 3
system.out.println(-8%5) -3
system.out.println(-8%-5) -3
b.赋值运算符
= 是将在它右边的值赋值给左边的值
a += 1等价于 a=a+1
+= -= *= /= %= 这些运算符会自动完成强制类型转换
int num = 0;
num = num +0.5;//错误
num += 0.5;//正确
++(自增) --(自减)
如果表达式中只有单独的自增长语句,那么a++ 和 ++a 是没有区别的
a++ a=a+1 a += 1
a-- a=a-1 a -= 1
//如果是组合运算
public class Test {
public static void main(String[] args) {
int b = 1;
int a = 2;
System.out.println(b+ (++a));
System.out.println(b+ (a++));
}
// a++ 先用a 完成运算,在完成加1的操作
//++a a先加1, 再完成运算
}
3.比较运算符
用来做比较的符号 < > => <= == !=
在java中不被允许 1<a<3这样的写法
注意在java 中不是用 = 来做相等比较 而是用==
运算的结果都为boolean值
4.逻辑运算符
逻辑运算符是专用于连接多个布尔表达式,获得整体的true或者false
与 --- and 符号 &&和&
表示两个条件同时为真就是真,有假就是假
&&是逻辑与 ,当第一个表达式就为false的时候,忽略第二个表达式,节约内存 ,称为短路
& 是位与 会将两个表达式都执行,再进行判断
int x = 0;
x != 0 && (x++ > 10) //打印x为0
int x = 0;
x != 0 & (x++ > 10) //打印x为1或 ---or 符号|| 和 |
表示两个条件同时为假就是假,有真就是真
|| 是专用的逻辑或 , 第一个表达式执行为true就不执行第二个语句,节约内存,称为短路
| 是 位或 两个表达式都会执行,再进行判断
int x = 0;
x != 0 || (x++ > 10) //打印x为0
int x = 0;
x != 0 | (x++ > 10) //打印x为1异或运算 符号 ^
一真一假才为真
本质也是一个位运算
平时是很少使用,往往出现在面试中,都是用来做位运算
两大特性:1.任何一个数 异或 自己都是 0 ,2.任何一个数 异或 自己都是得到自己
非 - --not 符号 !
取反,真为假,假为真
5.三目运算符
操作数1?操作数2: 操作数3
操作数1是布尔表达式
当布尔表达式为true的时候 取操作数2
当布尔表达式为false的时候 取操作数3
可以在操作数2或者3中再嵌套一个三目运算符
JavaSE(一)的更多相关文章
- 用大白话聊聊JavaSE -- 如何理解Java Bean(一)
首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- 用大白话聊聊JavaSE -- 自定义注解入门
注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原因: 1. 可以更深层次地学习Java,理解Java的思想. 2. 有了注解的基础,能够方便阅读各种框架的源码,比如 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- JavaSE基础01
JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...
- javaSE学习路线
Java SE大致可分为以下几块内容: n 对象导论:如何用面向对象的思路来开发 n 深入JVM:Java运行机制以及JVM原理 n 面向对象的特征:封装.继承.抽象.多态 n 数组和容器:容 ...
随机推荐
- React & Special Props Warning
React & Special Props Warning key & ref demo index.js:1 Warning: Comment: key is not a prop. ...
- uniapp 修改meta:viewport
onLoad(options) { this.setViewport(`width=device-width, initial-scale=1.0`); }, onUnload() { this.se ...
- 开始 nx
官网 video 详解Nx, 必读 配置代理 每次创建lib都要重启编辑器 创建项目 选择empty,然后选择Angular CLI 因为可以使用Angular Console λ npm init ...
- BGV再度爆发,流通市值破500万美金!
BGV似乎以超乎寻常的姿态,开启了爆发的模式.这两天,BGV一路上涨,日内最高涨至548.78美金,24小时成交额达到了98.07万美金,24小时成交量达到1844.93枚BGV,流通市值更是突破了5 ...
- [转]LINUX下编译c++11的代码
转载地址: https://blog.csdn.net/lwb102063/article/details/50445201 C++11,(即ISO/IEC 14882:2011),是目前的C++编程 ...
- JVM必不可少的知识
1.Java垃圾回收机制 对象被判断为垃圾的标准:没有被其他对象引用 2.判断对象是否可被回收 (1)引用计数算法 判断对象的引用数量 通过判断对象的引用数量来决定对象是否可以被回收 每个对象实例都有 ...
- react新手入坑
1.vscode保存react项目的时候由于js-css-html插件格式化代码导致react代码缩进错误 解决方法:禁用js-css-html插件 2.react和vue不同,react方法的定义需 ...
- HashMap是如何进行扩容的?
HashMap通过resize()方法进行扩容. 源码解析: resize()函数有两种使用情况: 一.当table数组为null时初始化hash表. 二.当table数组不为null时进行扩容. 1 ...
- 第七届蓝桥杯JavaB组——第6题方格填数
解决方案:利用全排列和递归 使用Java中的集合API:HashMap ArrayList package com.lzp.lanqiaoseven.p6; import java.util.*; / ...
- 在 Svelte 中使用 CSS-in-JS
你即便不需要,但你可以. 注意:原文发表于2018-12-26,随着框架不断演进,部分内容可能已不适用. CSS 是任何 Web 应用程序的核心部分. 宽泛而论,如果一个 UI 框架没有内置向组件添加 ...