一、如何定义Java中的类

Java代码都定义在类中,类由class来定义,区分public class和class;

二、main方法的作用

main方法是程序的入口;保证程序的独立运行;被JVM调用

三、Java语言分隔符

分号;语句的分割,表示一句话结束,好比咱们使用的句号;

花括号{};表示一个代码块,是一个整体,花括号要一起使用;

方括号[];定义数组和访问数组元素时使用;

圆点. 类/对象 访问它的成员(字段,方法)时使用等。

空格    分割一条语句的不同部分,空格的次数不限制;

四、注释

注释:用于解释说明程序的文字就是注释。有利于提高了代码的阅读性。

注释分类:

1)单行注释              //:

//后到本行结束的所有字符会被编译器忽略;

2)多行注释             /**/:

/*   */之间的所有字符会被编译器忽略

3)文档注释             /** */:

在/**  */之间的所有字符会被编译器忽略,java特有的(用于生成文档);

注意:多行和文档注释都不能嵌套使用

五、Java中的关键字

关键字:被Java语言赋予了特定含义的一些字符!关键字中所有字母都为小写。好比汉字中的专有名词,例如:中国、北京、上海等。一些我们不能将这些词用在其他地方,改变其含义。

关键字分类:

五、Java中的标识符

可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。

标识符组成:

(1)标识符由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等;

(2)标识符大小写敏感;

(3)标识符不得使用java中的关键字和保留字;

(4)别用JavaAPI里面的类名作为自己的类名。

标识符书写规范:

Java中的名称规范:

包名:多单词组成时所有字母都小写。xxxyyyzzz

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

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ

六、常量

常量:程序中固定不变化的值。比如:整数1,2,3,小数3.14,false,true等。

常量分类:

1)整数常量。所有整数 三类 正整数 零 负整数

2)小数常量。所有小数

3)布尔(boolean)型常量。较为特有,只有两个数值。true false。

4)字符常量。将一个数字字母或者符号用单引号(‘’)标识。

5)字符串常量。将一个或者多个字符用双引号(“”)标识。

6)null常量。只有一个数值就是:null。

七、进制

日常生活中,经常使用十进制运算数据,但是也接触过七进制、十二进制等。那么怎么把生活中的这些数据存放在计算机中,计算机又是如何表示这些数据呢?

任何数据在计算机中都是以二进制的形式存在的。二进制早起由电信号开关演变而来。用开表示某一个数,用关表示某一个数,然后使用不同的开和关组合起来,就可以表示数据了。

一个整数在内存中一样也是二进制的。

二进制:每一个二进制数位用0,1;满2进1。

八进制:每一个八进制数位用0,1,2,3,4,5,6,7;满8进1。用0开头表示。

十进制:每一个十进制数位用0,1,2,3,4,5,6,7,8,9,;满10进1。

十六进制:每一个十六进制数位用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;满16进1。用0x开头表示。

进制转换

            十进制转二进制

                  十进制转成二进制--->除以2倒取余数

图例说明:把一个十进制数转成二进制数,使用短除发,不停的除以2,直到商值为0,停止,然后倒着把余数写出来,这个数就是十进制数转后的二进制数。

二进制数转十进制数

                   二进制转成十进制--->按2的幂数展开并累加

图例说明:将一个二进制数转成十进制数,使用按权展开,并求累加和。具体说:对于一个二进制数,从最右侧开始,使用当前二进制数位上的数据乘以2的n-1次幂(n为当前这个二进制数从右侧开始的第几位。),并这将这些数据展开后加起来求和即可得到相应的十进制数。

进制规律

            计算机中是以二进制数据的形式表示所有数据,并且在计算机中把8个二进制数位当做一组,并“字节”来表示。即:8bit=1Byte(八个二进制数位为一个字节)。那么一个字节能表示的数据是多大呢?也就是当八个二进制数位上全部是1时能表达多大一个数据呢?

即当1个字节上全部存放的是1时,这个数据即就是255,0-255之间的任何一个正数都可以在用一个字节表示。

小技巧:对于任意一个十进制数,当要转成二进制时,也可以从上图中的128、64、32、16、8、4、2、1这些数据加起来。当有某一个数时,就说明这个二进制数位上一定存放的是1,若没有这个数,就说明这个二进制数位上一定存放的是0。

其他进制转换

              发现将一个十进制数转成二进制数时,需要使用很长的01这样的数字表示,很麻烦,不利于书写和阅读,于是就想能不能把这个较长的01数字使用其他形式表示呢?

如果把一个二进制数按照每三个二进制数位为一组划分,发现这三个二进制数位数字能表示大的最大值正好为7,正好符号了八进制的表示形式。于是可以把二进制数用八进制的形式表示。

 二进制转八进制

图例说明:上图是十进制29的二进制表示形式。要把这个数转成八进制,需要从最右侧开始,把每三个二进制数位当成一个整体,转成一个八进制数位。当二进制数位高位不足三位时,用零填补。

负数的表示形式

对于一个负数,它的表示形式非常简单,即用这个负数所对应的正数的二进制数取反然后加1,即可得到这个负数的二进制表现形式。

说明:取反的意思是将当前二进制数位上的1变0,0变1。

八、Java的变量

变量的概念:变量表示内存中的一个存储区域,该区域用来不断的存放同一类型的常量数据,并可以重复使用这个区域。并且这个区域有自己的名称(变量名)和类型(数据类型)。

理解:变量就如同数学中的未知数。

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

变量的起名:变量表示内存中的一个存储区域,这时必须给这个区域起个名字,才能使用。当在给变量起名时,同样需要见名知义。

变量使用注意:变量在使用时,必须先给变量空间存放数据,即初始化。同时变量也有自己的生命周期(使用范围,后期有)。

九、Java数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

整数默认:int             小数默认:double

1)布尔型 boolean

boolean类型通常用于逻辑运算和程序流程控制。

boolean类型数据只允许取值true或false(不可以使用0或非0的整数来代替true和false,区分于C语言)。

2)字符型char

char型数据用来表示通常意义上的“字符”,char占2字节,范围是[0,65535],但是前256个表示特殊字符;字符常量为 用单引号括起来的单个字符。

例如:char c = 'A';   char  c2 = '传';   char c3 = 97;

java字符采用Unicode编码,可用十六进制编码形式表示。char c1 = '\u0061';//a

3)转义字符

有部分符号在Java有特殊含义,当需要使用符号自身原有的意思时,这时可以通过转义字符表示。

例如:键盘上的制表符tab键。可以使用‘\t’表示。

如双引号,在Java中使用双引号表示字符串,若想使用双引号本身含义,即可使用‘\‘’’表示。

4)字符编码表

从前面的介绍知道计算机中所有数据都是采用二进制表示的,怎么才能把生活中的这些字符转成二进制表示呢?

为了解决这个问题,专门制作了一张码表,这张码表中就存放所有字符与整数的对应关系。

例如:‘A’ --->65

‘B’ --->66

‘a’ --->97

‘b’ --->97

......

所以当把一个整型数据赋值给char类型数据时,计算机会查码表中这个整数所对应的字符是什么,然后将这个字符存放在char类型的空间中。

char ch = 65; 其实是将A存放在ch中。

5)String类型

String不属于基本数据类型;但和字符有一定的联系。String是一个类,表示字符串(后面讲到);就是一串字符,也就是多个字符连接在一起;字符串都得使用“”括起来的,连接字符串使用+;

例如:

6)整数类型

整型数据根据数据范围不同,需要使用不同的关键字表示。

byte、short、int、long这四个关键字都可以在内存中开辟出存放整型数据的空间。

byte开辟1个字节的空间,short开辟2个字节空间,int开辟4个字节空间,long开辟8个字节空间。

byte b = 2;//会自动把2转为byte类型存放在b空间

short s = 3;

int i = 4;

long 1 = 5L;//当把一个值赋给long型空间时,需要在数值后面加L或1标注其为long类型

Java语言整型常量的四种表示形式:

二进制整数,0b或0B开头,如:int a = 0B110;

十进制整数,如:int a = 17;

八进制整数,要求以0开头,如int a = 12;

十六进制整数,要求0X或0x开头,如int a = 0x12;

Java语言的整型常量默认十int型,声明long型变量后加上‘l’或‘L’

7)浮点类型(float、double)

double和float关键字在内存中开辟的空间可以存放小数。double开辟8个字节的空间,float开辟4个字节的空间。

Java浮点类型常量有两种表示方式:

十进制形式:例如:3.14,168.0,  .618

科学计数法形式:例如:3.14E2,3.14e2,1000E-2

Java浮点型常量默认是double,则要声明一个常量为float型,则需在常量后加上f或F,

如:double pi = 3.14;//正确

float pi = 3.14F;//必须加上f,或转型  float pi3 = (float)3.14;

注意:Java里只有浮点型的变量才可以接受科学计算式结果;

int num = 314E2;//X   num为int类型,不可以使用科学计数法

十、数据类型转换

1)隐式类型转换

当在存储整数数据时,Java中所有的整数默认都是int类型的。所以在将-128~127之间的数据存储在byte类型空间中时,JVM会把这个int类型的数据自动转换成byte类型,然后存放在byte空间中。short同理。

当把一个int类型的数据存放在char类型空间中时,也会发生隐式类型转换。

注意:当把超过byte和short范围的数据给他们开辟空间存放会发生编译时错误。同样把无法在编码表中查到对应字符的数据存放到char空间也会报错。

整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

容量小的类型可自动转换为容量大的数据类型(类型自动提升);、

byte,short,char -> int -> long -> float -> double

byte, short, char 之间不会相互转换,他们在计算时首先会转换为int类型。

2)强制类型转换

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度的降低或溢出,使用时要格外注意。

强制转换格式:

(数据类型)(被转数据) ;

十一、算术运算符

1)算术运算符符号

2)算术运算符举例

在使用算术运算时需要注意运算两侧类型:当两侧类型不统一时,运算结果和较大类型保持一致。

3)算术运算符 注意问题

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的;整数之间做除法时,只保留整数部分而舍弃小数部分。

“+”除字符串相加功能外,还能把非字符串转换成字符串。“+”运算符两侧的操作数中只要有一个String类型,一个是基本数据类型时,编译成class文件后,两个操作数就被连接成了一个新的String值:

总结:

对于取模运算m%n:当m等于n时:m%n的结果为零

当m大于n时:m%n的结果为m/n的余数

当m小于n时,m%n的结果为m

思考:

1、m%2的结果是多少,你有什么启发?

2、System.out.println("5+5="+5+5);//打印结果是?   5+5=55

3、若要打印出“5+5”=10,上述代码怎么改?    System.out.println("5+5="+(5+5));

4)自加自减

自加(++)自减(--)运算

++:自加。对原有的数据进行+1

--;自减。对原有的数据进行-1

当在一个运算表达式中包含自加运算时,当自加符号在变量右侧时,需要先将变量的值临时保存,然后给变量空间加1,接着用临时变量空间中的值去和其他运算符进行运算。当自加符号在变量左侧时,需要先给变量空间加1,然后把加1后的值和其他运算符进行运算。

注意:自加自减运算单独存在时,放左放右是没有区别的。

十二、赋值运算符

赋值运算符号:

=,+=,-=,*=,/=,%=

赋值号的功能是将赋值号右侧的结果存储到左侧的变量空间中。

赋值号和算术运算符组合起来的混合运算符,它们即具有算术运算的特定,同时还具有赋值运算的特定。

注意:赋值号和算数运算符的混合运算属于一个运算符,不能拆分。并且这个符号会完成自动强转动作。

思考:以下代码有什么区别

说明:

s=s+2//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。

s+=2//编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。

十三、比较运算符

比较运算符符号

>大于          >=大于等于          <小于        <=小于等于         ==相等          !=不等‘

比较运算符。运算完的结果要么true,要么false。后期学习中会根据比较的结果做出 相应逻辑判断。

注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

注2:比较运算符“==”不能误写成“=”。

十四、逻辑运算符

逻辑运算符号:       逻辑运算符。用来连接boolean型表达式。

&:与

| :或

^:异或

!:非

&&短路与||短路或

运算规律

十五、位运算符

运算符符号:

无符号右移“>>>”:将运算数的二进制码整体右移指定位数,右移之后的空使用“0”来补充

位运算应用

需求1:最有效率运算2乘以8通过位移运算。2<<3

需求2:对两个整数变量的值进行互换(不需要第三方变量)

需求3:对给定的整数26,获取其十六进制的表现实行。(提示使用位移和按位与运算完成)

1、如下程序的结果:

2、如下程序的结果

第二天 Java语言基础的更多相关文章

  1. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

  2. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

  3. 第二十五节:Java语言基础-面向对象基础

    面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...

  4. 第二十三节:Java语言基础-详细讲解函数与数组

    函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...

  5. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  6. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

  7. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  8. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  9. day05<Java语言基础--数组>

    Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...

随机推荐

  1. javascript中通过元素id和name直接取得元素

    我们知道一些第三方的js库对如何快速选取html中的元素做了一些简化,貌似十分高深莫测,其实也不然.而且js本身自带了对于特殊元素的简便选取的方法,下面就为大家简单介绍下. 在html中,一般最直接的 ...

  2. rails项目编写中的一些小技巧小心得

    1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...

  3. css3-------:before和:after的作用

    1.:before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素,最基本的用法如下: <!doctype html> ...

  4. Oracle100w数据大表割接

    [现网问题] 最近在给咪咕做视频后台管理,移动那边希望页面上,码流字段可以支持1位小数,如8.0.自己查看数据库,发现码流字段是Number整型,也就是要换类型,打算直接换成varchar2.因为自己 ...

  5. 关于Resin SSL支持的两个问题

    1.Resin的OpenSLL支持功能只有收费Pro版才支持,这一点,只有你做好配置,测试的时候才会在提示中发现,文档里没有说明. 2.它的官方文档这部分有问题,第一个问题就是上面第一条没有说,第二个 ...

  6. windows10不能修改hosts解决方案(亲测)

    hosts文本解释: 有时候我们要破解一些软件与服务器通讯,所以通常都需要更改Hosts文件来达到目的,XP系统可以直接修改保存,但是Win10系统却提示没有权限去修改,那么我们要怎样办呢,我们修改的 ...

  7. js中window对象的opener属性的一个坑

    2018-05-08 17:48:33 今天我编写代码碰到了一个让我纠结了很久的坑,特别想在此说一下,让其他人避免我踏过的这个坑. 这个坑就是:在我自己写的子窗口中用opener属性却获取不到父窗口的 ...

  8. WiderG的博客皮肤

    我的Skin 还是亮出自己的Blog定制代码吧: 其实也不是完全自己写的(有抄袭),也不大懂这方面的知识,代码冗长,逻辑不清,加载缓慢,见谅喽

  9. MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述

    本文目录:1.备份分类2.备份内容和备份工具3.mysqldump用法详述 3.1 语法选项 3.1.1 连接选项 3.1.2 筛选选项 3.1.3 DDL选项 3.1.4 字符集选项 3.1.5 复 ...

  10. Java虚拟机-类加载

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行检验.转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制.在Java语言里,类型的加载.连接和初始化过 ...