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. 操作数1是布尔表达式

  2. 当布尔表达式为true的时候 取操作数2

  3. 当布尔表达式为false的时候 取操作数3

  4. 可以在操作数2或者3中再嵌套一个三目运算符

JavaSE(一)的更多相关文章

  1. 用大白话聊聊JavaSE -- 如何理解Java Bean(一)

    首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...

  2. javaSE基础07

    javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...

  3. javaSE基础06

    javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...

  4. javaSE基础05

    javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...

  5. javaSE基础04

    javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...

  6. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  7. 用大白话聊聊JavaSE -- 自定义注解入门

    注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原因: 1. 可以更深层次地学习Java,理解Java的思想. 2. 有了注解的基础,能够方便阅读各种框架的源码,比如 ...

  8. javaSE基础02

    javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...

  9. JavaSE基础01

    JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...

  10. javaSE学习路线

    Java SE大致可分为以下几块内容: n  对象导论:如何用面向对象的思路来开发 n  深入JVM:Java运行机制以及JVM原理 n  面向对象的特征:封装.继承.抽象.多态 n  数组和容器:容 ...

随机推荐

  1. module patterns

    module patterns ebooks https://github.com/xyzata/2017-new-ebooks/blob/master/Succinctly/modulepatter ...

  2. Typescript & React & optional parameters & default parameters

    Typescript & React & optional parameters & default parameters Typescript & optional ...

  3. nasm astricmp函数 x86

    xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export as ...

  4. html 布局,上下各100px,中间自适应

    flex <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  5. 10000星光值兑换一个的VAST将如何搅动NGK算力市场?

    加密数字货币是私人而非政府所发行的数字资产,具有自己的"货币"账户单位,在可以预见的未来三年之内,加密数字货币将覆盖至少全世界五分之一的人口.为此,NGK方面也做出了自己的努力,在 ...

  6. django学习-7.html模板中include标签使用场景

    1.前言 假设一个公司A有一个网站B,且网站B有5个不同的页面分别为C1,C2,C3,C4,C5. 那么,我们在打开这5个不同页面后去查看页面的整体内容,会发现每个页面的顶部内容.底部内容都一模一样. ...

  7. 微信小程序:利用map方法方便获得对象数组中的特定属性值们

  8. SpringBoot常见的异常问题

    1. org.mybatis.logging.LoggerFactory Springboot启动报错 Caused by: java.lang.ClassNotFoundException: org ...

  9. 关于电脑硬盘的二三事(SATA接口)

    @ 目录 前言 接口分类 SATA3接口 机械硬盘 机械硬盘的特点和主要参数 西部数据机械盘分类 绿·蓝·黑盘 红盘 紫盘 金盘 希捷机械盘分类 酷狼 酷鱼 酷鹰 银河 SATA3接口的固态硬盘 固态 ...

  10. DRF 外键字段深度查询优化、ListSerializer辅助完成群改

    目录 一.Response封装 二.外键字段深度查询 1.序列化配置exclude.depth 2.模型层函数.插拔式字段查询 三.listserializer辅助类 一.Response封装 用de ...