java的基本语法(1)

一、关键字

    定义:被Java语言赋予特殊含义,用做专门用途的字符串

    特点:关键字中的所有字母都为小写

二、标识符

    定义:java对各种变量方法等要素命名时所使用的的字符序列称为标识符(凡是自己可以起名字的地方都叫标识符)

    合法规则:1.由26个英文字母大小写,0-9,_或$组成

            2.数字不可以开头

            3.不可以使用关键字或保留字,但能包含关键字和保留字

         4.Java中严格区分大小写,长度无限制

         5.标识符不能包含空格

    命名规范:1.包名:  多单词组成时所有字母都小写:xxxyyyzzz

            2.类名、接口名:  多单词组成时,所有单词的首字母大写:XxxYyyZzz

         3.变量名、方法名:  多单词组成时,第一个单词首字母小写,第二个单词开始每个单词的首字母大写:xxxYyyZzz

         4.常量名:  所有字母都要大写,多单词组成时每个单词用下换线连接:XXX_YYY_ZZZ

三、变量

    概念:1.是内存中的一个存储区域

       2.该区域有自己的名称(变量名)和类型(数据类型)

       3.java中的每个变量必须先声明(定义),后使用

       4.该区域的数据可以在同一类型范围内不断变化(例如先声明int i = 1;再声明i = 2;则i的值由1变为2)

       5.变量是通过变量名来访问这块区域的

    定义变量格式: 数据类型 变量名 = 初始化值

    注意:1.变量的作用域:在一对{ }之间有效

       2.必须有初始化值(第一次给变量赋值):例如 int i = 0; 若直接只int m;则错误,因为没有给变量初始化

       3.声明变量过程中的=,不同于数学意义上的=,在java中表示赋值

    变量的分类——按数据类型(除了8种基本数据类型之外,其他的都是引用数据类型)

    8种基本数据类型

        1.整数类型:byte、short、int、long

        注意:1.java各整数类型有固定的表数范围和字节长度,不受具体OS影响,以保证java程序的可移植性  例如: byte b = 129 就超出了byte的表数范围,不合法

           2.java的整型常量默认为 int 型

           3.声明 long 型常量须后加 ‘l’ 或 ‘L’(长整型)  例如:long l = 6L (最好用大写L,因为小写l和1相似)

        

’        2.浮点类型:float、double

        注意:1.Java浮点类型也有固定的表数范围和字段长度,不受OS影响

           2.Java的浮点类型常量默认为 double 型

           3.声明 float 型常量,须后加 ‘f’ 或 ‘F’

           4.浮点型常量有两种表示形式:十进制数形式(如5.12   512.0f    .512)必须有小数点

                         科学计数法形式(如5.12e2    512E2    100E-2)结尾的"E+数字"表示E之前的数字要乘以10的多少次方,比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

        

        3.字符类型:char

        注意:1.char 型数据用来表示通常意义上的“字符”(2字节)

           2.字符型常量的表现形式:字符常量是用英文单引号 '' 括起来的单个字符,涵盖世界上所有书面语的字符。例如:char c1 = 'a'; char c2 = '6'; char c3 = '中';

                       Java中还允许使用转义字符 '\' 来将其后的字符转变为特殊字符型常量。例如: char c3 = '\n';     // '\n' 表示换行符

           3.char类型是可以进行运算的,因为它都对应有Unicode码。

          

        布尔类型:boolean

        注意:1.boolean类型适用于逻辑运算,一般用于程序流程控制:if条件控制语句;

                                     while循环控制语句;

                                     do-while循环控制语句;

                                     for循环控制语句;

           2.boolean类型数据只允许取值true和false,无null    (不可用0或非0的整数代替true和false)   例如:boolean b1 = true;或boolean b1 = false;

    基本类型之外为引用类型:例如String类       

        引用类型特点:1.在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。

               2.对象、数组都是引用数据类型。

               3.所有引用类型的默认值都是null。

               4.一个引用变量可以用来引用任何与之兼容的类型。

        String类:1.值null可以赋值给任何引用类型的变量,用于表现这个引用变量中保存的地址为空,String类属于引用类型,可用null赋值

              2.String类是一个典型的不可变类,String对象创造出来就不可能被改变。创造出的字符串将存放在数据区,保证每个字符串常量只有一个,不会产生多个副本    例如:int i0 = 1; int i1 = 1; 这种情况会在内存中储存两个1值,而String s0 = "hello"; String s1 = "hello"; 这种情况只会在内存中存在一个“hello”,假设“hello”的内存地址为xxxxxx,声明s0变量时给s0赋值“hello”实际上让s0变量引用“hello”的内存地址xxxxxx,当我们再声明变量s1也赋值“hello”的时候实际上也是直接把已经存在的“hello”的内存地址给s1引用

             3.String类可以用加号拼接,例如:String s3 = "he" + "ll" + "o"; 输出为"hello"

    基本数据类型转换

        1.自动类型转换:容量小的数据类型自动转换为容量大的数据类型,数据类型按容量的大小排序为:

        

        2.有多种类型的数据混合运算时,系统首先自动将所有的数据转换为容量最大的那种数据类型,然后再进行计算

        3.byte,short,char,之间不会相互转换,他们三者在计算时首先转换为int

        4.当把任何基本类型的值和字符串进行连接运算时(+),基本类型的值将自动转换为字符串类型

        注意:1. 不能对boolean类型进行类型转换。

           2. 不能把对象类型转换成不相关类的对象。

           3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

           4. 转换过程中可能导致溢出或损失精度,例如:

              int i =128;

              byte b = (byte)i;

            因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

           5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

              (int)23.7 == 23;

              (int)-45.89f == -45;

           6.当有一系列的+的运算时,如果某个部分含有字符串,那么这个字符串往后都要按照字符串拼接去看,例如:

              String str = 1 + 2 + 3 + "a" + 4 + 5;    打印结果为6a45

    强制类型转换

        1.条件是转换的数据类型必须是兼容的。

        2.格式:(type)value     type是要强制类型转换后的数据类型

        int k = 7;

        byte b = (byte)k; //转换的数据类型要用小括号括起来

        3.通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换为基本类型。

        参考资料:https://www.runoob.com/java/java-basic-datatypes.html

       

Java学习day2关键字的更多相关文章

  1. Java学习day2

    今天学习了Java的数据类型.运算符.选择循环结构以及数组. Java所有的关键字全部小写 Java的数据类型与c语言相似,但是c语言定义数组时可以不主动对其初始化,而Java则必须先初始化,有动态和 ...

  2. java学习之关键字

    java语言当中的关键字,之所以存在,是为了告诉编译器如何解释一段有意义的代码段.比如说 /**需求:演示java中关键字存在的含义步骤:用class,public,static,void等说明什么是 ...

  3. 【转】Java学习---volatile 关键字

    [原文]https://www.toutiao.com/i6591422029323305480/ 前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现 ...

  4. Java学习——static关键字

    静态:static用法:是一个修饰符,用于修饰成员(成员变量或函数).当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员 ststic特点:1, 随着类 ...

  5. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  6. Java学习笔记之面向对象、static关键字

    一周Java学习总结 今天就总结理清一下关于面向对象和面向过程的程序设计的一些不同特点,以及讲下static关键字. 面向对象 现在接触的Java是面向对象的,现在的程序开发几乎都是以面向对象为基础的 ...

  7. 疯狂java学习笔记之面向对象(四) - this关键字

    Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...

  8. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements ...

  9. Java学习之路(二):关键字和变量,运算符

    关于关键字的一个概述 Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构,关键字不能用做变量名.方法名.类名.包名. Java常见的关键字 标识符 什么是标识 ...

随机推荐

  1. IDEA开发初始化设置

    一.基本设置 1. 自动生成 serialVersionUID 的设置 2. 设置文件注释 3. 隐藏项目文件(夹) .git;.gitignore;.idea;.idea/.;.mvn;mvnw;m ...

  2. RAC heartbeat 心跳机制

    世界上最遥远的距离,不是生与死.而是我们同一个集群的两个节点,你却听不到我的心跳. 必要性:维持集群的⼀致性RAC⼼跳机制 – 集群⼼跳基本机制:1.确定节点和节点间的连通性,达到彼此了解2.⽤共享的 ...

  3. 【leetcode】1111. Maximum Nesting Depth of Two Valid Parentheses Strings

    题目如下: A string is a valid parentheses string (denoted VPS) if and only if it consists of "(&quo ...

  4. 【python】对于程序员来说,2018刑侦科推理试卷是问题么?

    最近网上很火的2018刑侦科推理试卷,题目确实很考验人逻辑思维能力. 可是对于程序员来说,这根本不是问题.写个程序用穷举法计算一遍即可,太简单. import itertools class Solu ...

  5. Linux学习-samba服务

    一.Samba介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. SMB (Server Messages Block,信息服务块) 是一种在局域网 ...

  6. 6359. 【NOIP2019模拟2019.9.15】小ω的树(tree)(定期重构)

    题目描述 题解 qy的毒瘤题 CSP搞这种码农题当场手撕出题人 先按照边权从大到小建重构树,然后40%暴力修改+查找即可 100%可以定期重构+平衡规划,每次把B个询问拉出来建虚树,在虚树上暴力维护每 ...

  7. echart-如何将x轴和y轴的原点进行重合???

    设计稿突然让x轴 和y轴重合,我们可以设置图中的这个属性. 不知道还有没有别的设置属性,欢迎评论指出谢谢

  8. 弹性盒子FlexBox简介(一)

    一.理解弹性盒子 弹性盒子是CSS3的一种新的布局模式. CSS3弹性盒子(Flexible Box或flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时,确保元素拥有恰当的行为的布局方 ...

  9. EQS 自定义Context 如何用Testing Pawn 进行测试?

    比如自定义了一个玩家的Context, 那么需要把这个玩家直接放置到场景中 在Context中override Provide Single Actor函数,按类型获取所有的Actor,其中第一个作为 ...

  10. [转]Vue项目全局配置微信分享思路详解

    这篇文章给大家介绍了vue项目全局配置微信分享思路讲解,使用vue作为框架,使用vux作为ui组件库,具体内容详情大家跟随脚本之家小编一起学习吧 这个项目为移动端项目,主要用于接入公众号服务.项目采用 ...