龙珠悟空,一个写故事的程序员 《小白学java》第四章:java第一堂课 序言:这一堂课很干,想水一篇文章,故事缩略到极短,直接上java入门整理好的前两张章干货! PS: 1. 不要说我懒,今天请假回家了,看到我妹学习不听话,巨气,打我妹去啦~~ 2. 文章中有思维导图,在第一章中提到的课程,所有的思维导图我这边都有,想要的小伙伴可以关注公众号联系我领取哦~ 2. 由于CSDN博客上代码块无法上传图片,课程中的图片我会在下一个附属博客中粘贴出来,链接稍后贴出 3. 文章同时上传至微信公众号,公众号可以同时发布8条消息,主线故事会在第一条,前两张课程的思维导图会在第二条,两个课程分别在第三第四条(课程图片包含其中)。如果同学想有更好的阅读体验的话,可以移步到公众号(如下): 经历过上次老黄在所谓第一堂课实际最后一场面试的演讲,我对老黄邋遢无能的印象也由教子无类、好为人师的学者风范所替代。依稀记得上次上课干完老黄画的大饼,走出教室时整个人都是轻的,那种没有思想压力、职业压力的轻松。所以今天又是老黄的课,我上完数分马上马不停蹄的跑了过来,企图占一个前面的好位置,仿佛在前面听的知识更容易进脑子一。 老黄也早早的等待在教室,看我们都到齐了,示意大家都坐下,开始上课了。同时随和的说了一句,"今天的课很干,我希望同学们你们都准备好水"。 "哈哈哈",大家开始哄堂大笑起来,没想到看上去理工科宅男的老黄会说出这样的话,同时都还带有一丝的不在意,仿佛再说,都是千军万马考上大学的,谁怕谁呀。 "那我就开始啦,今天我们要讲的是前四章:java入门,数据类型和运算。大家要认真听哦!大家先看下java入门和数据结构课程的思维导图,了解下有什么内容?十分钟后我们开始讲课",为了让我们更好的了解课程,老黄打开了他的思维导图。 附:1. java入门课程思维导图 2. 数据结构和算法思维导图 第一次见思维导图大家也很好奇,这东西很清楚的罗列了课程的内容,大家一脸崇拜的看着老黄,老黄也一副我们没见过世面的表情看着我们,没有搭理我们想要学习怎么画思维导图的渴望的眼神,开始了他的讲课。 第一章: java 入门 一、DOS 命令中: cd 是读取 dir是查看目录 tab是补齐 上下键是查看历史记录 二、常见得Java的开发工具: eclipse(IBM公司) IntelliJ IDE NetBeans 三、Eclipse 的使用: 1、.java源文件放到src里面;转变的.class字节码文件放到bin里面,JRE是系的字节码字节码文件包 2、文件名最好首字母大写,不能用数字开头 3、alt / 是快捷补全键 ; main alt / 快捷生成读取入口;syso alt / 打印出口 三、注释 分类:单行// 、多行/*…*/、文档/**…*/ 四、标识符 1、必须以字母,下划线,$开头,其他部分可以有数字 2、Java 标识符大小写敏感,且长度无限制。标识符不可以是Java的关键字。 3、标识符的使用规范 表示类名的标识符:每个单词的首字母大写,如Man, GoodMan 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(), eatFood() 【注意】:Java不采用通常语言使用的ASCII字符集,而是采用Unicode这样标准的国际字符集。因此,这里字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符! 五、变量 本质:是代表一个"可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。 ( 变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明) 数据类型: <><><><><>< 示意图1 ><><><><><> 变量要先声明再赋值再使用 六、变量的分类 1、分类: <><><><><>< 示意图2 ><><><><><> 2、局部变量(local variable) 方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。 3、 成员变量(也叫实例变量 member variable) 方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。 4、静态变量(类变量 static variable) 使用static定义。 从属于类,生命周期伴随类始终,从类加载到卸载。 (注:讲完内存分析后我们再深入!先放一放这个概念!)如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值 A、初始化默认值:(成员变量和静态变量) <><><><><>< 示意图3 ><><><><><> 七、常量 常量通常指的是一个固定的值。( 在Java语言中,主要是利用关键字final来定义常量,常量一旦被初始化后不能再更改其值。) 第一节课上下来,下课后大家前后桌开始交流起来,由于大家是第一次上课相互之间聊天都还比较拘谨,但是依稀听到大家都在讨论老黄太小看我们啦,这点知识有什么好难得,一个个自信满满,仿佛java是一个很简单得东西。老黄似乎也没给我们很长时间,开始给我们讲数据结构和运算啦。 第二章: 数据结构和运算 八、数据类型 <><><><><>< 示意图4 ><><><><><> 九、整型变量 1、常量整数表类型: <><><><><>< 示意图5 ><><><><><> <><><><><>< 示意图6 ><><><><><> <><><><><>< 示意图7 ><><><><><> 2、Java语言整数型常量的四种表达形式: 十进制整数,如:99, -500, 0 八进制整数,要求以 0 开头,如:015 十六进制数,要求 0x 或 0X 开头,如:0x15 二进制数,要求0b或0B开头,如:0b01110011 十、浮点型常量 1、带小数的数据称为浮点型:float 单精度类型,精确七位有效数字;double 双精度常量, 精确度是float 的双倍 2、浮点型常量类型 <><><><><>< 示意图8 ><><><><><> 3、Java浮点类型常量有两种表示形式 十进制数形式,例如:3.14 314.0 0.314 科学记数法形式,如314e2 314E2 314E-2 4、运算注意事项 1、float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。 2、浮点数存在舍入误差,数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用 BigDecimal类。 3、避免比较中使用浮点数,需要比较请使用BigDecimal类 十一、字符型常量 1、字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。 2、char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。 3、string 是字符序列,转义字符空格要加在前面。 4、转义字符: <><><><><>< 示意图9 ><><><><><> 十一、boolean类型变量/常量 boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。 十二、运算符 1、运算符的分类: <><><><><>< 示意图10 ><><><><><> 2、算术运算符 A、二元运算符的运算规则: 整数运算: (1) 如果两个操作数有一个为Long, 则结果也为long。 (2)没有long时,结果为int。即使操作数全为short,byte,结果也是int。(char,结果也是int) 浮点运算: (3) 如果两个操作数有一个为double,则结果为double。 (4) 只有两个操作数都是float,则结果才为float。 *先乘除后加减,不同数据类型运算后,结果数据类型属于大的类型 B、取模运算: (1)其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。 (2)算术运算符中 ,--属于一元运算符,该类运算符只需要一个操作数。 3、赋值运算符 <><><><><>< 示意图11 ><><><><><> 4、关系运算符 <><><><><>< 示意图12 ><><><><><> …… 5、逻辑运算符 (1)||短路或,一真返回真,都真都假,正常读取 //若果前真后假,返回真《》《》;若果前假后真,无法读取 (2)&&短路与,一假返回假,都真都假,正常读取 //若果前真后假……,无法读取;若果前假后真,返回假 6、位运算符 <><><><><>< 示意图13 ><><><><><> 12 > >2==12/2/2 3<<2==3*2*2 7、字符串连接符 “ ”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。 8、条件运算符 语法格式:x?y:z (其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值) 9、运算符优先级 <><><><><>< 示意图14 ><><><><><> (1)表达式里面优先使用小括号来组织 (2)逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或) 十二、数据类型转化 1、自动类型转化 (1)、本质:自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。 <><><><><>< 示意图15 ><><><><><> (黑色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失) (2)可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。 2、强制数据类型转化 语法格式: (typ)var (1)概念:强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。 (2)不能在布尔类型和任何数值类型之间做强制类型转换 3、类型转化常见问题 (1)操作比较大的数时,要留意是否溢出,尤其是整数操作时。(需要在解决前把数据类型转化) (2)不要命名名字为l的变量,l容易和1混淆。long类型使用大写L不要用小写。 第二节课就这样在老黄马不停蹄得喝水和嘶吼中结束啦,这次课后同学们显然没有了第一次上课后的轻蔑和胸有成竹,看着这密密麻麻的图,心惊这竟然只是java入门,看来以后学java之路还任重道远呀。 |
|