一、Java入门

Java 是最好的语言吗?

不是,因为在每个领域都有更合适的编程语言。

Java技术体系平台

JavaSE//JavaEE//JavaME

Java程序的结构

类{
  方法{
    语句;
  }
}

二、Java基础知识

注释:

单行

//

多行

/*

*/

文档

/**

*/

关键字:

Java 有50余个关键字

常量:

字面量常量(“HwlloWorld,123”)

final修饰的变量

标识符:

1、标识符的命名规则(必须遵守)

(1)Java的标识符只能使用26个英文字母大小写,0-9的数字,下划线_,美元符号$

(2)不能使用Java的关键字(包含保留字)和特殊值

(3)数字不能开头

(4)不能包含空格

(5)严格区分大小写

2、标识符的命名规范(遭受鄙视)

(1)见名知意

(2)类名、接口名等:每个单词的首字母都大写,形式:XxxYyyZzz,

例如:HelloWorld,String,System等

(3)变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式:xxxYyyZzz,

例如:age,name,bookName,main

(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,

例如:java.lang

(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,

例如:MAX_VALUE,PI

初识数据类型

基本数据类型:
变量:

变量三要素

1、数据类型

2、变量名

3、值

变量的作用:用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。

变量的使用应该注意什么?

1、先声明后使用

2、在使用之前必须初始化

3、变量有作用域

4、在同一个作用域中不能重名

变量的声明:

数据类型  变量名;

变量的赋值:

变量名 = 值;

变量的使用:

通过变量名直接引用

进制的换算

十进制数据转成二进制数据:

使用除以2倒取余数的方式

二进制数据转成十进制数据:

从右边开始依次是2的0次,2的1次,2的2次。。。

二进制数据转八进制数据:

从右边开始,三位一组

二进制数据转十六进制数据

从右边开始,四位一组

数据存储的最小单位。也就是二进制。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。

解释:计算机数据的存储(了解)

1000 0000 ==> -128(特殊规定)

计算机数据的存储使用二进制补码形式存储,并且最高位是符号位,1是负数,0是正数。

规定:正数的补码与反码、原码一样,称为三码合一;

负数的补码与反码、原码不一样:

负数的原码:把十进制转为二进制,然后最高位设置为1

负数的反码:在原码的基础上,最高位不变,其余位取反(0变1,1变0)

负数的补码:反码+1

为什么float(4个字节)比long(8个字节)的存储范围大?

因为float、double底层也是二进制,先把小数转为二进制,然后把二进制表示为科学记数法,然后只保存:

(1)符号位(2)指数位(3)尾数位

详见《float型和double型数据的存储方式.docx》

虽然计算机底层使用0和1表示false和true,但是在代码中不能给boolean类型的变量赋值0和1,只能赋值false和true

编码表 :就是将人类的文字和一个十进制数进行对应起来组成一张表格。

基本数据类型转换

1、自动类型转换(隐式类型转换)

将取值范围小的类型自动提升为取值范围大的类型 。

2、强制类型转换(显示类型转换)

将取值范围大的类型强制转换成取值范围小的类型。

数据类型 变量名 = (数据类型)被强转数据值;

任意数据类型的数据与String类型进行“+”运算时,结果一定是String类型

但是String类型不能通过强制类型()转换,转为其他的类型

运算符优先级

++ 运算,变量自己的值加1。反之,-- 运算,变量自己的值减少1

1、单独使用

变量前++和变量后++,变量的是一样的;

2、复合使用

变量前++ :变量先自身加1,然后再取值。

变量后++ :变量先取值,然后再自身加1。

赋值运算符

所有的赋值运算符的=左边一定是一个变量

byte,short,char 之间运算后会自动类型提升为int型

扩展赋值运算符在将最后的结果赋值给左边的变量前,都做了一步强制类型转换

例:short a += 1;结果还是short类型,可能损失精度

比较运算符:

是两个数据之间进行比较的运算,运算结果一定是boolean值true或者false 。

其中>,<,>=,<=不支持boolean,String类型,==和!=支持boolean和String。

逻辑运算符:

是用来连接两个布尔类型结果的运算符(!除外),运算结果一定是boolean值true或者false

&&和&结果一样,&&有短路效果,左边为false,右边不执行;&左边无论是什么,右边都会执行。

||和|结果一样,||有短路效果,左边为true,右边不执行;|左边无论是什么,右边都会执行。

三元运算符

数据类型 变量名 = 关系表达式?结果1:结果2

条件判断的结果是true返回1,false返回2

位运算符(了解)

左移:<<

运算规则:左移几位就相当于乘以2的几次方

右移:>>

运算规则:右移几位就相当于除以2的几次方

无符号右移:>>>

运算规则:往右移动后,左边空出来的位直接补0,不看符号位

按位与:&

运算规则:

1 & 1 结果为1

1 & 0 结果为0

0 & 1 结果为0

0 & 0 结果为0

按位或:|

运算规则:

1 | 1 结果为1

1 | 0 结果为1

0 | 1 结果为1

0 & 0 结果为0

按位异或:^

运算规则:

1 ^ 1 结果为0

1 ^ 0 结果为1

0 ^ 1 结果为1

0 ^ 0 结果为0

按位取反:~

运算规则:~0就是1

~1就是0

如何区分&,|,^是逻辑运算符还是位运算符?

如果操作数是boolean类型,就是逻辑运算符,如果操作数是整数,那么就位运算符。

提示:

(1)表达式不要太复杂

(2)先算的使用()

Java基础语法01的更多相关文章

  1. 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序

    006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...

  2. 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介

    005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...

  3. 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构

    004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...

  4. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  5. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  6. 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学

    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...

  7. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  8. Java基础语法入门01

    Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...

  9. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

随机推荐

  1. Python开发专属壁纸下载与轮换程序

    本人对于壁纸一直偏佛系,不爱特意去找一堆壁纸.因此用Python简单地搞了一个自动下载壁纸,定时随机轮换的功能来自娱自乐,顺便分享给大家. 原文链接:https://www.codernice.top ...

  2. 【TencentOS tiny】深度源码分析(6)——互斥锁

    互斥锁 互斥锁又称互斥互斥锁,是一种特殊的信号量,它和信号量不同的是,它具有互斥锁所有权.递归访问以及优先级继承等特性,在操作系统中常用于对临界资源的独占式处理.在任意时刻互斥锁的状态只有两种,开锁或 ...

  3. bugku猫片

    这个猫片思路清奇,真的让我长知识了. 开局一只猫,挺可爱的.   拿到图片,老套路来一波,首先 winhex打开是正常png图片,binwalk ,stegslove都没有任何收获. 折腾了好久没有任 ...

  4. Kubernetes网络分析之Flannel

    Flannel是cereos开源的CNI网络插件,下图flannel官网提供的一个数据包经过封包.传输以及拆包的示意图,从这个图片中可以看出两台机器的docker0分别处于不同的段:10.1.20.1 ...

  5. RRiBbit,一个事件总线.基于spring配置不同服务通信!

    1.何为RRiBbit? *一种开源事件总线技术,能够让模块(组件)之间双向通讯,也被称为请求相应总线(request-response-bus),使用简单,相对其他框架来说,RRiBbit只需要加个 ...

  6. Travis CI持续集成使用

    用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值.而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情. 一.什么是持续集成? Travis CI 提供的是持续 ...

  7. C语言打印当前所在函数名、文件名、行号

    printf("[%s %s] %s: %s: %d\n", \ __DATE__, __TIME__, __FILE__, __func__, __LINE__); 内核驱动中: ...

  8. Ubuntu18.04 安装 OpenCV 4.1.1

    1. 安装依赖包 sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-confi ...

  9. [HDU5955]Guessing the Dice Roll

    Problem Description There are N players playing a guessing game. Each player guesses a sequence cons ...

  10. 程序员修神之路--为什么有了SOA,我们还用微服务?

    菜菜哥,我最近需要做一个项目,老大让我用微服务的方式来做 那挺好呀,微服务现在的确很流行 我以前在别的公司都是以SOA的方式,SOA也是面向服务的方式呀 的确,微服务和SOA有相同之处 面向服务的架构 ...