Java学习笔记20180407

正所谓尽信书则不如无书,学Java也不能只读某一个视频教程,除了网上多如牛毛的Java书籍和教程,Java官方开发文档才是正道源泉,因此,我今天溯本归原,从官方文档读起,了解Java设计者的本意,先用一张文档首页截图镇个楼。

Java Tutorials

文档还是按照几个大块来讲的,正文还有范例并且讲解得很细很完整,每一部分会作总结,接着带有少量Question和Excercise,不小心还会中招。

下面将我今天读完的部分所掌握的东西与大家分享一下。

1.操作符的运算优先顺序,简言之,是一元运算符>二元运算符>三元运算符。文档给了一道题目int x=10, int n=x++%5;问n=?

++是自增运算符,为一元运算符,%为取余运算,是二元运算符,=是赋值运算符,比前两者优先级都低,还有一点需要考虑,赋值运算是从右至左,因此运算顺序:

因此是x%5先计算出结果为0,传递给n,然后x再自增为11。


2.8种基本数据类型的默认值,为0,null或false。但是要想看到这个默认值(即不事先针对变量赋值),需要先将其声明为Class中有成员变量,并通过Object.Field的方式调用才能被编译器初始化为默认值。否则,直接用int x; 然后System.out.println(x)的方式显示会报错。

相应的截图如下,实验检验与文档说明是一致的。

8 primitve data default value

另外,视频教程和官方文档都提到了数值中加下划线这种操作,比如Long型数值3141592657345L,为了便于快速知道它是多大的数,类似于之前在Excel中显示千位分隔符一样,程序员们也喜欢每隔三位加一个_,变成3_141_592_657_345L,具体的要求有:

1)_不可以放在小数点前,如 3_.14F

2)_不可以放在L或F数据类型标识字母前,如9999_L

3)_不可以放在头和尾,如52_和0x_52

4)_不可以放在前缀里,如0_x52

其实我们只要记住_是用于三位三位分开数字的就OK了。


3.Array数组,Java提供了一个数组运算的方法,比如System.arrayCopy(Object src,int srcPos,Object dst, int destPos, int length),这与Excel函数里的各个参数非常像,有点像Mid函数。5个参数分别指向源数组,源数组取样位置,目标数组,目标数组取样位置,取样长度。

当然,我看到后面一段话,觉得这个函数略复杂,还是用后面的比较好,java.util.Arrarys.copyOfRang(copyfrom,pos,length);这简直与Mid函数是一样一样的。

还有其他后面可能用得着的方法,比如ArraryA.equals(ArrayB)比较两个数据 , fill(ArrayB)填充数组, sort(ArrayB),对数组各元素按升序排列。

4.Operators,expression, statement,blocks这几个概念的层层关系。

Expression=variables+operators+method invocations,表达式类似于一条公式,可以用数值,运算符和方法引用组成

Statement是一条执行语句,跟expression有时只差一个;它可以是赋值语句,x++,x--;这种简单语句,也可以是方法调用,创建对象,声明语句,或是control flow语句等。

而Block是用{}包含的一段代码块,包含某一个功能实现的相关语句。


5.控制语句中break,continue,return的用法

continue;是用于跳过本次循环的后续代码,而进行下一次循环,如果continue是用于嵌套循环中的内层循环,则使用continue后只会跳到内层循环的下一次。

break;是跳出循环,相当于在某个游戏局中被踢出,不再执行循环体代码。

当然,这两者都可以配合Label使用,label应放在循环体之前,如break testlabel; continue testlabel;这里它们就会跳到标签处,break用于跳出循环,而continue则会从标签处继续执行。

return用于返回,一般是用于返回值,如return a value;一般是放在public int method(int m){..... return x;}这种需要返回值的方法中,也可以直接用return;但是并不能返回任何东西,放在代码段中只是为了跳过后面的代码而已。


6.类,方法和对象的访问权限控制

Java官方文档画了一张表格,我觉得很好,就截图放下面吧!

用我的语言解释一下,这张表中放了4种权限范围,

1)最宽松的是public,即公共文件,类似于公司EtQ文件系统中的public domain,大家都可以访问,读取与修改。

2)Protected要严一些,World是不能访问的,类似于Business Use,其他BU无法访问。

3)什么都不写,默认是第三种情况,即父类的子类也无法访问父类的方法和属性。只能父类自己访问

4)Private是最严格的,只有父类自己访问,package(将不同的类打包在一起的集合)也不可以访问,类似于同一小组人也不能访问,只能自己访问。

Access Levels

与之配套的是成员可见性表格,与上面的权限是一样的,即类所包含的方法和其成员对象也是不能被随便访问和修改的,这体现了Java的安全和隐藏实现细节的机制。

Visibility

我们在写代码时,要注意权限控制(因为在你的代码里,你就是管理员,God),所以要清楚2点(Java官方写的,不是我):

1)知道我可以调用哪些类

2)知道每个成员变量和方法应该设置什么样的访问等级


7.Static关键字,我觉得这个关键字有点绕,但仔细理解一下还可以。相比于Variable,Java为每个不同的变量分配了内存和地址,但Static标记的数据,Java只给分一个内存单元,我们可以利用这一点做点事情。比如建立一个自行车编号,记录一共卖了多少自行车,相关的代码如下:


Keyword Static


Keyword Static


8.输出格式管理,这个算一个小补充,在我看到现在的示例代码中,基本没见过。使用System.out.println或是使用System.out.format都可以,很多我们都很容易理解。

%s,%c,%b,%d,%x,%o,%f,分别对应基本数据类型String,char,boolean,d对应十进制,x对应十六进制,o对应8进制,f对应float,

%a表示十六进制浮点类型,%e对应指数,%%对应百分比显示。

最常见的是%n换行符,但\n也能换行,还有不常用的是%g通用浮点类型,%h对应散列码(那是什么鬼?下次Google下),还有%tx对应日期与时间类型(Java没有把日期与时间作为基本数据类型)。


以上就是今天的笔记内容,明天我会继续看官方文档,做完练习后,再回到视频教程中去,因为视频教程的练习题更加有意思一些。谢谢的大家的支持。

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

推荐阅读更多精彩内容