博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkingInJava_6
阅读量:6323 次
发布时间:2019-06-22

本文共 1241 字,大约阅读时间需要 4 分钟。

  hot3.png

    等Gloria中。最近项目忙了起来,打算写篇最近的“鸡汤”,名字都想好了,就叫做:对于每个人来说,刚入职能写点代码,挺好。

 1、当编写一个Java源代码文件时,此文件通常被称为编译单元(有时候也被称为转译单元)。每个比哪一单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同(包括大小写,但不包括文件名的后缀.java)。每个编译单元只能有一个public类,否则编译器就不会接受(如果没有public的class也是可以编译的,但是运行不了,如果要是有public的类必须和文件名一样,而且只能有一个public的类)。如果在该编译单元之中还有额外的类的话,那么在包之外的世界史无法看见这些类的。

 2、编译器其实是把package名称分解成机器上面的一个目录

 3、jar包的扫描与加载其实很多时候是动态的,在我们运行程序或者项目的时候,系统通过特定的代码(这段代码可以自己写,很大可能是开发工具或者是框架做好了的)将所有jar包所在的路径+包名称扫描加载进内存中去。此时我们就可以import每个jar包里面对应的路径下面的类了。如果我们想要静态的在整个操作系统中导入一个jar的话,必须要在环境变量的classpath里面进行全路径+jar包名称的配置。现在的JDK已经很智能了,能默认的将Java自带的jar工具类加载进系统,而不用我们在环境变量中添加。classpath配置里面“.”代表着当前路径下面。JDK运行的时候现在也是默认从当前路径下面进行加载的了。

 4、protected这种访问控制也是提供包访问权限的。这一点可能很多时候被疏忽。

 5、一个类既不可以是private(这样其他类任何都不可以访问他了)也不可以是protected的,但是内部类是可以用这两个访问控制权限的。

 6、访问控制权限的好处:

 ①设定了客户端程序员可以与不可以使用的界限。可以建立自己的内部机制,不必担心客户端程序猿偶尔的大意而去访问修改了一些内部的数据。

 ②可以将实现和接口分离。解耦和的思想。具体调用接口的程序员不用管实现的程序员。如此一来,一个功能的开发与使用分离,提高了维护效率。

 7、如果没能为一个类访问控制权限指定一个访问修饰符(在class前面),他就会默认得到包访问权限,这就意味着该类的对象可以由包内的任何其他类来创建,但是在包外则是不行的(如果一个文件没有明确的package信息的话,被视为是该目录下面默认包的一部分)。然而,如果该类的某个static成员是public的话,则客户端程序员仍旧调用该static成员的,尽管他们并不能生成该类的对象。

 8、其实客户端程序员一般情况是用不了默认权限的类的(就是在class前面没有任何修饰符的类,因为这种包访问权限,客户端程序员都是包外进行编码的),上面第7条后面那种情况例外。

转载于:https://my.oschina.net/UBW/blog/523285

你可能感兴趣的文章
2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈
查看>>
mysql触发器的作用及语法
查看>>
strtok、strtok_s、strtok_r 字符串切割函数
查看>>
shell编程基础(5)---循环指令
查看>>
八皇后问题
查看>>
稀疏矩阵
查看>>
Android源码
查看>>
在线maven仓库
查看>>
.NET破解之爱奇迪(二)
查看>>
设计模式——外观模式
查看>>
C#反射方法学习
查看>>
MD5加密解密
查看>>
.Net 转战 Android 4.4 日常笔记(6)--Android Studio DDMS用法
查看>>
SVN被锁定的几种解决方法
查看>>
js如何判断是否在iframe中及防止网页被别站用 iframe嵌套 (Load denied by X-Frame-Options)...
查看>>
ios ios7 取消控制拉升
查看>>
182在屏幕中实现网格化视图效果
查看>>
本文摘录 - FlumeJava
查看>>
Scala学习(三)----数组相关操作
查看>>
Matlab基于学习------------------函数微分学
查看>>