JAVA基础课程

1.变量与标识符

数学名词:

变数或变量,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。

计算机解释:

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据

变量分类:

按所属的数据类型划分:

  基本数据类型变量

引用数据类型变量

按被声明的位置划分:

  局部变量:方法或语句块内部定义的变量

  成员变量:方法外部、类的内部定义的变量

Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。

Java标识符命名规则:

由字母、数字、下划线(_)和美元符号($)组成。

不能以数字开头。

区分大小。

长度无限制。

不能是Java中的关键字和保留关键字。 

标识符命名习惯:驼峰命名法、见名知意。以单词或单词组合来命名

合法标识符:

vince、daoguo、user_name、_userName、$abc_123

非法标识符:

2UserName、user#Name、Hello 威哥、class

2.八种基本数据类型

字节(Byte)是:计算机文件大小的基本计算单位。

1个字节(Byte)

= 8个位(Bit) 

           Bit意为“位”或“比特”,是计算机运算的基础;

二进制中的一位,是二进制最小信息单位.二进位可以用来表示一个简单的正/负的判断,有两种状态的开关(如电灯开关) .

简单换算结果:

1个字节(Byte) = 8个位(Bit)

2个字节(Byte) = 16个位(Bit)

4个字节(Byte) = 32个位(Bit)

8个字节(Byte) = 64个位(Bit)

说明:在内存计算过程中,

字节少的数据运算速度更快;

在硬盘存储中,

字节少的数据类型也可充分存入更多的数据。

单位换算:

1byte = 8bit 

1KB = 1024byte

1MB = 1024KB

1GB = 1024MB

1TB=1024G

1PB=1024TB

3.基本数据类型的声明


声明变量的格式:

(1)声明变量

类型  变量名;

(2)声明的同时给变量赋值

类型  变量名 = 值;

(3)给已声明过的变量赋值

变量名 = 值;

4.进制与转换

计算机进制通常有:十进制、二进制、八进制、十六进制

十进制:

人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果。

10、150、1050…

二进制:

计算机中的数据都以二进制数字保存。二进制:逢二进一。即只有0、1两个值。

如:十进制的10在计算机内保存为二进制的1010

计算机中信息的存储单位

位(Bit):表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位。 字节(Byte):一个字节由8个位组成。它表示作为一个完整处理单位的8个二进制数码。

八进制:

基数为八。

Java中八进制数据要以0开头。如:0123

八进制转换成二进制:只需将每个八进制数字替换为相对应的三个二进制位即可。

现在的计算机系统很少用八进制的了。

十六进制:

二进制表示法太冗长,所以在程序中一般喜欢用十六进制

十六进制:基数为十六,逢十六进一。它用abcdef表示从0-9之上的值

Java中十六进制数据要以0x或0X开头。如:0x23D

十六进制转换成二进制只需将每个十六进制数字替换为相对应的四个二进制位即可

补码:

事实上,计算机内的二进制数值是以补码形式表示的。

补码: 一个正数的补码和其原码的形式是相同的。

负数的补码是:将该数的绝对值的二进制形式,按位取反再加1。

 由此可知,二进制补码数值的最高位(最左位)是符号位:该位为0,表示数值为正数;该位为1,表示数值为负数。

主要原因:使用补码,可以将符号位和其它位统一处理;

同时,减法也可按加法来处理。

另外,两个用补码表示的数相加时,

如果最高位(符号位)有进位,

则进位被舍弃。

二进制数转换成十进制数

按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

例:原码1011.01 = 1×23+0×22+1×21+1×20+0×2-1+1×2-2

                  = 8+0+2+1+0+0.25

                         =11.25

十进制转换成二进制

整数部分:"除2取余,逆序排列"法

小数部分:"乘2取整,顺序排列"法


5.基本数据类型转换

自动类型转换:

容量小的类型自动转换成容量大的数据类型

byte,short,int,它们三者在计算时会转换成int类型

如果把int值转换为float值,或者long转换为double值,不需要强制转换,但可能丢失精度.

6.关键字


保留关键字 如:goto 和  const

7.转义字符


8.运算符与优先级

算术运算符:

表达式:由变量、常量运算符组成的式子。

++:如果是前缀:先对此变量加1,再执行其他的操作

如果是后缀:先执行其他的操作,再对此变量加1

--:同理

键盘输入:Scanner input=new Scanner(System.in);

赋值运算符:

作用是将一个值赋给一个变量,运算顺序从右到左


关系运算符:

作用是比较两边的操作数,结果总是boolean型的。

运算符练习:

1、通过键盘输入声明初始化一个圆柱体的高和底面半径,pai值是3.14,求圆柱体的体积,  并显示输出圆柱体的体积; π(r^2)h。

2、意定义一个五位整数,求各个位上的数的和。

3、根据天数(46)计算周数和剩余的天数,天数是通过键盘输入。

4、面试题:&和&&的区别

位运算符:

对两个操作数中的每一个二进制位都进行运算

位运算符功能:

1、按位取反 ~

2、按位与 &

3、按位或 |

4、按位异或 ^


位移运算符:

左移:"a<<b; "将二进制形式的a逐位左移b位,最低位空出的b位补0

带符号右移:"a>>b; "将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位

无符号右移:"a>>>b;"将二进制形式的a逐位右移b位,最高位空出的b位补0    


面试题:以最快的速度计算8*4结果?

0000000000000000 00000000 00001000  8

1000000000000000 00000000 00100000  32

使用位移的方法是最快的。

int

result = 8<<2;

左移算法:位移数作为2的次幂与操作数相乘

10<<2=40

右移算法:操作数除以位移数的2次幂

通过键盘输入,初始化两个数将这两个数据交换位置后,输出显示交换后的数据。

三目运算符:

X ? Y : Z

X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

从键盘输入一个成绩,判断该分数是否及格。

9.分支语句

if条件结构是根据条件判断之后再做处理

简单判断语句:

 if(表达式){

        执行语句;

     }else{

        执行语句;

     }

    如果...那么

  执行过程:当程序执行到if时,首先会判断( )里面表达式的值,

    如果表达式的值为真,那么就执行( )后{ }里的执行语句,

    如果为假,那么就执行else后面{ }里的执行语句

& ,| ,^ ,&& ,|| , ! ,==

案例练习:

1、输入一个字符,判断是大写字母还是小写字母,输出提示信息。

2、写一个程序,判断某一年是否为闰年(被4整除但不能被100整除能被400整除)是闰年否则是平年

分支嵌套:

 if(表达式1){

        执行语句1;

     }else if(表达式2){

        执行语句2;

     }else if(表达式3){

        执行语句3;

     }else{//可有可无

        执行语句4;

    }

执行过程:当程序执行到if时,首先会判断( )表达式1的值,如果为真,那么就执行{ }里面的执行语句1;然后这个if-else if结

束,如果表达式1的值为假,那么就会继续向下执行,else if后面的表达式2,为真,就执行语句2,为假,就继续向下执行,直

到为真,如果所有表达式的值都不为真,那么就会执行else后面{ }里的执行语句,然后真个if-else

if结束。

案例练习:

1、给出一个百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上输出’A’,80~89分输出’B’,70~79分输出’C’,60~69分输出’D’,60分以下输出‘E’。

2、输入两个整数,打印出它们的大小关系,是小于、大于还是等于。

3、多条件嵌套分支,设计一个程序,根据天气情况选择外出或在家,外出是逛街还是逛公园,在家是看电影还是玩游戏。

语法:

switch(表达式){

case 取值1: 语句块1;

  break;

case 取值n: 语句块n;

  break;

default: 语句块n+1;

  break;

}

switch与if嵌套

switch(表达式){

case 取值n: 语句块n;

  if(表达式){…}

  break;

default: 语句块n+1;

  break;

}

案例练习:

1、编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何一个数。

2、输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数输出。

3、直接用JDK1.7的字符串条件判断,确定两个数是执行加、减、乘、除操作。

if vs  switch

同:都是选择分支语句。

异:1、语法不同。

   2、语句后表达式值的类型不同,if语句表达式值的类型是boolean,switch分支表达式值的类型是byte,short,char,int,枚举,String。

   3、适用场景

      if:变量的值在某个区间之内。

      switch:变量的值是某个定值。

if vs 三目运算

三目运算符都可以使用if语句实现,反之不成立。

Java 7 switch支持String的实现原理:

这个新特性是在编译器这个层次上实现的

在编译的过程中,编译器会根据源代码的含义进行转换,不同的Java编译器可能采用不同的方式来转换

比如:如果switch语句中只包含一个case语句,那么就可以简单的将其转换成一个if语句。

如果包含一个case和一个default语句,就可以转换成if-else语句。而对于复杂的情况(多个case语句),

也可以转换成Java 7 之前的switch语句,只不过使用字符串的哈希值(整数)作为switch语句表达式的值

循环语句分为:while,do while,for

语法:

while(条件表达式){

  //语句块;

}

符合条件,循环继续执行;否则,循环退出

特点:先判断,再执行

1、计算1-100之间所有整数之和。5050

2、计算10的阶乘

3、打印100以内所有的奇数,偶数和3的倍数(不包括100)

语法:

do {

   循环操作

}while ( 循环条件 );

先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出

特点:先执行,再判断

1、逆序输出10~0

2、Java阶乘求和 1!+2!+...+10!

语法:

for(初始化参数;判断条件 ;更新循环变量){

   循环体;

}

关键字:continue 表示跳过当次循环,继续下次循环。

For循环的六种写法:

1、标准写法

2、表达式1省略,但在外部声明

3、表达式2省略,死循环

4、表达式3省略,但是要声明在循环内部

5、表达式1,3省略,但是要声明在循环的外部和内部

6、三个表达式都省略,死循环

1、打印输出0~200之间能被7整除但不能被4整除的所有整数;

2、输出10个斐波那契(Fibonacci)数列:1 1 2 3 5 8 13 21 34 55。(特点:第1,2两个数值为1,从第三个数开始,该数是其前面两个数之和)

10.循环语句

1、变量与标识符(重点)

2、八种基本数据类型(重点)

3、基本数据类型的声明(重点)

4、进制与转换(了解)

5、基本数据类型转换(重点)

6、关键字(了解)

7、转义字符(了解)

8、运算符与优先级(重点)

9、分支语句(重点)

10、循环语句(重点)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 668评论 0 0
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,770评论 0 38
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,590评论 4 12
  • 参考菜鸟教程进行编写 一.基本语法 1.1 基本概念 一个Java程序可以认为是一系列对象的集合,而这些对象通过调...
    天蓝如染阅读 419评论 0 1
  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 8,699评论 9 66