《疯狂Java讲义》读书笔记(一):面向对象,数据类型和运算符,流程控制与数组

序言:《疯狂Java讲义》这本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、JavaGUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。共覆盖了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下绝大部分类和接口。

声明:读书笔记纯粹是在阅读本书时,摘录一些好的句子,运行一些自己的代码而来的。好的东西需要share。

整理时间:2016年10月15日,周六,20:18——2016年11月27日,周日,23:30

第一章:Java语言概述与开发环境

①忠实于Java开发,见过许多所谓的技术经理,他们来应聘往往滔滔不绝,口若悬河,他们知道很多关键词、新名词和概念,但机试往往不是很乐观:说没有IDE工具,提供IDE后又说没有文档,提供了文档又说不能上网,能上网了又说不是在自己的电脑,没有代码参考···他们的理由比他们的技术强!

②C#语言和Java有90%的重叠,Microsoft提供的Visual Studio开发平台极好地提高了C#的开发效率,允许程序员直接通过向导、拖放等操作来快速开发应用,因此更容易使用。但Java是跨平台的,一个大型企业通常使用Java做开发。

号外:笔者刚毕业那2年,在一家生产智能卡的公司也是用C#,那时候刚毕业(2015届),不懂社会行情,但一直没有放弃自学Java。

第二章:面向对象

三个特征:继承、封装和多态。继承是面向对象实现软件复用的重要手段,当子类继承父类后,将直接获得父类的属性和方法;封装是将对象的实现细节隐藏起来,然后通过一些公共的方法来暴露该对象的功能;多态是指子类对象可以直接赋给父类变量,但运行时依然变现出子类的行为特征。抽象不是面向对象的重要部分。Java不支持多继承,类似于每个人只有一个亲生父亲。

第三章:数据类型和运算符
①基本类型分为两大类:数值类型和布尔类型,数值类型包括整型、字符型、浮点型。字符串不是基本数据类型。
②Java的标识符必须以字母、数字、下划线和美元符号$开头。标识符不能以数字开头,不能是Java的关键字和保留字,不能包含空格,不能包含除$之外的符号。
③Java 7 引入了一个新功能:程序员可以在数值中使用下划线,不管是整型还是浮点类型,比如:int count=123_456;
double pi=3.14_15_926_54;主要是为了解决数据庞大时,程序员眼睛“看花”了。
④类型转换原则是:小转大可以。byte->short->int->long->float->double,其中char和short同级。byte不能转char。
⑤System.out.println("Hello!"+3+4);输出:Hello!34;System.out.println(3+4+"Hello!");输出:7Hello!
⑥Math.random() 生成0~1之间小数。8种基本类型都提供一个parseXXX(String str)静态方法用于将字符串转为基本类型。除int对应Integer,char对应Character之外,其它都是首字母大写。比如double对应Double。
⑦常用Math类下的静态方法,用于处理各种复杂的数学运算,如:Math.pow(3,5);//3的5次乘方;Math.sqrt(9);//求9的平方根。Java支持 a=b=c=9;这种写法,但程序可读性不好,不建议这样写。
⑧byte a=2;a=a+3;//会提示编译错误,因为把int类型赋给byte类型的变量,=是赋值。如果是:a+=3;就不会报错。
三目运算符:“?:”语法格式:(表达式)?if-true-statement:if-false-statement,比如:String str=5>3 ? "5大于3":"5不大于3";将输出:5大于3。

第四章:流程控制与数组
①switch语句后面的控制表达式的数据类型只能是byte、short、char、int类型4种,String类型从Java 7才开始允许。且注意不能是StringBuffer或StringBuilder类型的字符串。

myouter:
for (int i = 0; i < 8; i++) {
	for (int j = 0; j < 5; j++) {
		System.out.println("i=" + i + ",j=" + j);
		if (j == 2) {
			break myouter;
		}
	}
}

注:myouter是Java中的标签,后面紧跟着一个英文冒号:的标识符,放在循环语句之前才有用。如果只有break语句,则执行效果是:j=2时,直接回到第一个for循环,继续执行接下来的循环;如果加上标签myouter,则遇到j=2,直接跳出循环到myouter处,就不再执行下面的循环了。myouter必须在break之前定义。myouter名字是自定义,可以叫阿猫阿狗。

③return关键字不是专门用于结束循环的,它的功能是结束一个方法,不管这个return处于多个层循环嵌套之内。
④一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,数组长度将不可改变。数组也是一种数据类型。定义数组方法:
type[] arrName;或者type arrName[];推荐使用第一种。初始化数组有2种方式:静态和动态初始化。如:int[] a={1,2,3};
和int[] arr=new int[5];数组的索引从0开始计算的。即第一个数据元素的索引值是0,最后一个元素的索引值是数组长度-1。

⑤foreach循环可以用来遍历数组和集合。语法格式如下:

String[] arr={"张三","升职","主管"};
for(String str:arr){
   System.out.print(str);
}

输出:张三升职主管

for(类名 val :arr){int a1=val;} 即for(type var:集合)。可以用来遍历类的对象的属性。数组的类型也可以是类名,数组内存放的是对象。Java 8 提供了Arrays的某些静态static方法来直接操作数组,如:int binarySearch(type[] a,type key):使用二分法查询key元素在a数组出现的索引,如果a不包含key,则返回负数,调用该方法要求数组元素已经升序排序。boolean equals(type[] a,type[] b):如果数组a和数组b长度、元素都相同,则返回true。

你可能感兴趣的:(Java基础)