你的位置:首页 > Java教程

[Java教程][原创] 高淇诗三百


  • 版权声明:自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)
  • 发表日期: 2015年12月22日 18:00

eclipseworkspace管理working set管理project管理package管理class

记住:表达式(运算、甚至一个数)是有返回值的!

 

高琪JAVA三百集·笔記

 


 


1.学习方式:深入内存结构、分析JDK源码;学习JAVA:企业级服务器端开发 + Android开发;学习编程语言的方法:找准一门语言,精通它。

2. 一代机器语言 - 二代汇编语言 - 三代高级语言(面向过程、面向对象) - 四代SQL(存疑):向着人更加容易使用的方向发展。

3. 做产品的标准:比上一代产品更加容易被人使用、功能更加强大。



 

4. 机器0101 - 汇编abbr. - 硬件从电子管到晶体管性能提升,计算机开始可以做更多的事,于是需要更多软件,汇编不够了。

5. 面向过程C_FORTRAN_COBOL_PASCAL_ADA;面向对象C++_JAVA_C#



 

6. JAVA核心优势:跨平台。JVM (Sun针对不同系统提供不同虚拟机、由Sun解决系统差异而不用你操心)

  

8. JAVA各版本和体系架构:

   

9. JDK(oracle.com/downloads)

  

 

 

10. 标识符以字母、下划线、美元符开头(甚至汉字)。

11. Unicode中一个字符占两个字节:1B=8bit, 2^8=256; 2B=16bit, 2^16=65536; 汉字大概占两万。

12. 字符集 (ISO8859-1 - BIG5 + GB2312 GBK GB18030 + Unicode)。

  


 

13. JAVA数据类型:四类八种基本类型 + 对象引用。

  

14. byte short int long _ 1 2 4 8 字节 _ -128~127 正负3万 正负21亿 国象棋盘放米;BigInteger类。

15. 进制转换:Integer.to?String(), ?=Binary Octal Hex。

16. 整型常量(字面量)默认是int;整型常量不超范围可以自动转型为byte short char

17. float double _ 4 8字节。浮点常量(字面量)默认是double。

18. float范围比int大,有限范围内表示无限的小数,并不能精确表示所有小数,有舍入误差;使用BigDecimal类精确;避免比较浮点数。

19. char占2字节;转义字符(单引、双引、反斜杠、制表、换行);运算时直接当作整数来运算。

20. 自动类型转换:

  

21. 自动类型转换:int/long可以转float但可能损失精度,long可以转double但可能损失精度,int转double不会。

22. 强转超出了目标类型的表数范围,就会被截断成为一个完全不同的值。

23. 注意做二元运算符的计算时,自动类型转换可能会导致类型提升的问题。

24. 自动类型转换看容量(容量是表数范围而不是字节数), long是2^63,float是3.4e38 (double是1.7e308)。



 

25. JDK7新特性:二进制整数0b (用于更方便地操作内存与移位运算,写游戏和权限管理会常用)。

26. JDK7新特性:下划线分隔符 (对长数字进行分段书写, 四位一隔致脱口念出)。



 

27. 局部变量在使用前必须先声明和初始化。

28. final常量(最终变量)只能被初始化一次;使用 [全大写+下划线] 命名 (Ruby约定高于配置 -小写就是变量 大写就是常量)。

29. 标识符:见名知意 动名分开 - 变量名、方法名首字母小写和驼峰;类名首字母大写和驼峰。



 

30. 运算符:

  

31. 二元运算符类型提升与一元运算符的顺序:

  

32. 逻辑短路:逻辑&&的第一个是false则不算第二个 逻辑或的第一个是true则不算第二个;移位与或不短路。

33. 逻辑与或只能操作布尔变量,按位与或(位运算符)还可以操作整数;按位与& - 有0则0无0则1;按位异或^ - 同则0;取反~。

34. 注意:int 四个字节,默认二进制32位;取反会改变符号位。

35. 左移一位 (《1 ) 相当于乘以2,右移一位 ( 》1 ) 相当于除以2;移位运算符后面跟着的操作数是移动的位数。

36. 试题:乘除 2、4、8… 怎么算最快?移位。

37. 优先级:先乘除后加减 表达式里面优先使用小括号来组织。


 


38. 编程的本质:尽快地将业务逻辑用代码实现!而学javase用记事本还是eclipse其实关系不大,不要在这种问题上用错力。

39. eclipse: Window - Show view - Outline视图用于查看类结构。主要是看方法,尤其是重载。

40. eclipse: 断点:程序在调试模式下运行时会停下来的地方 (双击加消断点,右键debug as)。

41. eclipse: debug视图的4个按钮:运行到下个断点或运行到底F8 停止CTRL+F2 进入方法F5 下一行F6 (F2=Focus Ctrl+1=QuickFix)。

42. eclipse: F11=debug,Ctrl+F11=run;将run改为F10 (其实也不用改,如果不设断点,debug就是run),Hide Toolbar。



 

43. 控制语句:(顺序结构)、[单双多]选择结构(if好习惯-即使1行都打花括号-否则控制范围只有第一条语句)、循环结构。

44. switch语句专做等值判断,注意break丢失导致case穿透:无视case值而接着执行case里的代码直到碰到break为止。

45. 多行case只写值、不写体,间接地利用case穿透做多个等值判断。

46. JDK7新特性:switch表达式结果可以是字符串 (+int和枚举)。

47. while循环:如果条件满足,则再来一次(先判断后执行,而 do{}while(); 先执行后判断)。


 

48. eclipse: 修改变量名,为防遗漏要使用右键 - Refactor – Rename。

  

49. 解题技巧:【删题干】简化分解难题,一块一块实现

50. 解题技巧: for循环打印九九乘法表?首先要保持一个积极的心态,“你肯定会!”,首先你不学循环你会不会?第一反应是我能做,然后再去考虑怎么做的问题。

51. goto的影子:带标签的break和continue (JAVA保留goto关键字但没有功能)。



 

52. 方法:形参parameter-在方法被调用时用于接收外界输入的数据;实参argument-调用方法时实际传给方法的数据。本质不同:形参的本质是一个名字,不占用内存空间。实参的本质是一个变量,已经占用内存空间。

  

53. 方法:JAVA中只有值传递-基本数据类型传数据值本身,引用类型传对对象的引用,而不是对象本身。

54. 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

55. 递归 = 递归头(什么时候不调自己) +递归体(什么时候调自己)。

  

56. 递归图示与内存精讲:递归两个阶段-递推与回归。

:http://www.cnblogs.com/whl2012/p/3608973.html

57. 递归:程序调用自身的编程技巧 (例题:阶乘计算和斐波那契数列)。

:http://www.2cto.com/kf/201301/181639.html



 

58. api:包(所有包) - 类(包下所有的类和接口) - 详(类和接口的详细说明);点 Overview 列出所有的包,二级链接有“包概述”。

59. 包?类似于“文件夹”,解决类之间的重名问题 和 便于管理类(合适的类位于合适的包)。

60. 包名:域名倒着写,再加上模块名,并于内部管理类。

61. eclipse: 习惯完全使用 ctrl+n 新建 项目(注意working_set)、包、类。