IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> J21的Java blog(Note_2)(来源:狂神说的Java基础视频) -> 正文阅读

[PHP知识库]J21的Java blog(Note_2)(来源:狂神说的Java基础视频)

Java基础知识

注释、标识符、关键字

注释

?public class HelloWorld {
?    public static void main(String[] args) {
?        //输出一个Hello World !"单行注释"
?        /*
?        输出一个Hello World !"多行注释"
?        */
?        /**
?         * JavaDoc:文档注释
?         * @Description HelloWorld
?         * @Author 舒杰 , 文化学院
?         * */
?        System.out.println("Hello World !");
?    }
?}

标识符

关键字

关键字不能作为标识符。

标识符

类名、变量名、方法名都叫做标识符。

标识符的首字母只能以字母(A-Z or a-z),美元符号($),或者下划线(_)开始。

标识符的后续字母可以以任意字母任意组合(A-Z or a-z),美元符号($),或者下划线(_)以及数字。

关键词不能作为标识符。

标识符是大小写敏感的。定义的Man、和man是两个不同的变量

可以使用中文,但不建议。

数据类型

强类型语言

要求变量的使用要严格符合规定,所有的变量都必须定义后才能使用。

数据类型

数值类型

整数类型

byte 一个字节,范围-128~127 默认是0;

short 两个字节,范围-32768~32767 默认是0;

int 四个字节,范围-2147483648~2147483648 默认是0;

long 八个字节,范围-9223372036754775808~9223372036754775807 默认是0;

浮点类型

float 四个字节 默认是0.0。

double 八个字节 默认是0.0。

字符类型

char 两个字节 默认是0.0。

String 字符串 默认是null。

boolean类型

boolean类型 一位(一个bit)只有ture和false两个数值

默认是false。计算机中0代表假,1代表真,所以也可以理解为默认值是0,而0对应的是false所以默认值是false;

?public class shujvleixing {
?    public static void main(String[] args) {
?        //整数 :
?        int num1 = 10000 ;    //一般使用的整数类型。
?        byte num2 = 127 ;     //最小-128~最大127。
?        short num3 = 30 ;     //最小-32768~最大32767。
?        long num4 = 100L ;    //Long类型要在数字后面加L。
?        //浮点数 :
?        float num5 = 50.1F;   //float类型需要在后面加上F。
?        double num6 = 3.1415926; 
?        //字符 :
?        char word1 = '舒';     //表示单个字符,以单引号表示。
?        //字符串不是关键词,他是一个类
?        String word2 ="hello"; //表示一连串字符,以双引号表示。
?        //布尔值   只有ture and false 两个值
?        boolean flag = false;
?    }
?}

引用数据类型

  1. 类 String

  2. 接口

  3. 数组

字节转换

8位(bit)=1字节或1B(byte)

1024B=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

数据类型拓展

整数拓展

二进制 以0b开头

八进制 以0开头

十六进制 以0x开头


浮点数拓展,银行业务与浮点数

float

double 本身存在舍入误差

最好完全避免使用浮点数进行比较

可以使用 BigDecimal类 数学工具类进行表示

字符拓展

字符强制类型转化

System.out.println((int)c2);

所有的字符本质还是数字。

转义字符

\t tab 制表符

\n enter 换行

类型转换

public class shujvleixing {
?    public static void main(String[] args) {
?        //整数 :
?        int num1 = 128 ;    //一般使用的整数类型。
?        byte num2 = (byte)num1 ;     //最小-128~最大127。
?                    //(byte)强制类型转换,转换成byte型。
?        System.out.println(num1);
?        System.out.println(num2);
?    }
?}

输出结果

128 -128

  • 是因为在计算机中int类型是可以接受128的数值所以第一个数值是128

    128在计算机里的原码是1000 0000

  • 而强制类型转换之后 码的二进制表示不变,但是变成了byte的类型

    而byte类型最高支持127,127在计算机里的原码是0111 1111,再加就是1000 0000了,第一位的“0”代表是正数,如果是“1”则是负数,所以最大表示127是这么来的。

  • 注意,我们将强制类型转换后的1000 0000给到byte类型的num2 之后 他的第一位是“1”代表是个负值,这就是-128中,“-”负号的由来。

  • 但是为什么是-128呢?是因为负数在计算机中存在的性质是补码,补码的值的计算,是按权展开,然后求和.

  • 跟原码不同的是表示符号位的权重是负权重,在1000 0000 中可以理解为

    1*(-2^7)+ 0*(-2^6)+ 0*(-2^5)+ 0*(-2^4)+ 0*(-2^3)+ 0*(-2^2)+ 0*(-2^1)+ 0*(-2^0)=-128

    所以第二个值是-128而不是其他的负值。

关于强制类型转换

  1. 不能对boolean值进行转换。

  2. 不能转换成不相干的类型。

  3. 低容量转换成高容量的数值类型,不需要强制类型转换;高容量转换成低容量时才需要强制类型转换。

  4. 强制类型转换可能存在 溢出、精度问题

变量与常量

变量的作用域

类变量

?static int num1 = 100;

实例变量

?String words = "J21"; //String不是一种变量名,而是一种类

局部变量

?public void He(){
?    int i = 100;
?    //该方法的变量类似与C语言的局部变量但是又不是完全相同。
?}

命名规范

  1. 所有的变量、方法、类名:要求见名知意。

  2. 常量:使用全大写字母以及下划线表示。

  3. 类成员变量、局部变量:首字母小写,单词的第一个字母是大写(驼峰原则)。

  4. 类名:首字母大写和驼峰原则。

  5. 方法名:首字母小写和驼峰原则。

常量

常量值的定义:

?static final double PI = 3.14;
?//通过final定义常量,一般使用全大写字符表示

运算符

++、--

//===========例1==============
?int a = 3;
?int b = a++;
?//先完成运算,运算完成了给a+1。
?int c = ++a;
?//先给a+1,再用a+1的值。
?//最终a+2了,b的值是取了a最初的值,c的值取得是a+2之后的值
?    System.out.println(a);
?    System.out.println(b);
?    System.out.println(c);
?/*
?结果:
?    5
?    3
?    5
?*/
?//===========例2==============
?        byte seconds = 3 ;
?        short minutes = 20;
?        System.out.println(seconds);
?        minutes =(short) (seconds++ + ++minutes);
?        System.out.println(seconds);
?        System.out.println(minutes);
?/*
?    结果:
?    3
?    4
?    24
?*/

数学类·幂运算

?double pow = Math.pow(2,3);
?System.out.println(pow);
?//Math.pow的类型是double类型
?int pow = (int)Math.pow(2,3);
?System.out.println(pow);
?/*
?    结果:
?    8.0
?    8
?*/

短路机制

int num_test = 10;
?        boolean flag_test = (num_test<5)&&(++num_test<20);
?        System.out.println(num_test);
?        System.out.println(flag_test);
?/*
?    结果:
?    10
?    false
?*/

与或非运算表达

  1. A&B A 按位与B

  2. A|B A 按位或B

  3. A^B A按位异或B

  4. ~B 按位将B取反

<< >>运算符

0b0001_0111<<2

结果: 0b0101_1100

有时候乘法可以以移位来实现

?System.out.println(2*8);
?//上下效果完全一样
?System.out.println(2<<3);

结果:

16

16

三元运算符<?:>

x ? y : z

意思是如果x==ture 则运算结果为y,否则运算结果为false。

字符串连接符

?        int a = 10;
?        int b = 20;
?        System.out.println(a+b+"<-同样是a+b,左右两边为什么不一样->"+a+b);
?/*输出结果:
?    30<-同样是a+b,左右两边为什么不一样->1020
?    */  
    
??

在打印函数中,如果有String类型,那么后面的+会以String类型输出。

来源:狂神说的Java基础视频

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 09:51:10  更:2021-09-18 09:52:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 10:36:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码