package java.lang;

public class String {
// 双亲委派机制: 安全
// 应用程序加载器-扩展程序加载器-根加载器
// 自底向上检查类是否被加载,自顶向下加载类
// 1.APP-->EXC--BOOT(最终执行) 根加载器叫bootstrapClassLoader
// 当前是应用程序加载器,它会先向上找,找到EXC
// 如果根加载器没有这个类,就开始倒着走,BOOT里面没有,就去EXT里面找,EXT也没有,就去APP里面找

public String toString(){
return "Hello";
}

public static void main(String[] args) {
String s = new String();
s.toString();

new Thread().start();
// native是一个计算机的函数,一个Native Method 就是一个Java调用非java代码的接口。

// 方法的实现由非java语言实现,例如C或者C++

// 在定义一个native method时,并不提供实现体(有些像定义一个Java Interface),
// 因为其实现体是由非Java语言在外面实现的。

// 标识符native可以与所有其它的java标识符连用,但是abstract除外。
// 这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,
// 但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,
// 其意义同非Native Method并无差别,
// 比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,
// 比如当你想用一个native method去调用一个C的类库时。
}

// 1.类加载器收到类加载的请求
// 2.将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动类加载器
// 3.启动类加载器检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则,抛出异常,通知子加载器进行加载
// 4.重复步骤 3
// Class Not Found~

// null:java调用不到,或者不存在 C、C++
// java = C++--: 去掉繁琐的东西,指针,内存管理~ ---java中的内存管理交给了jvm
}

最新文章

  1. codeforces 723E:One-Way Reform
  2. centos 6.4 系统代理上网 设置
  3. 移除http响应中的多余的头(X-AspNet-Version,Server等)
  4. 衔接UI线程和管理后台工作线程的类(多线程、异步调用)
  5. socket的一个错误的解释SocketException以及其他几个常见异常
  6. C# 创建WebServices及调用方法
  7. UITableView、UICollectionView行高/尺寸自适应
  8. GET请求和POST请求的区别
  9. 如何安装mysql
  10. ArcGIS 网络分析[2.1] 最短路径
  11. Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL
  12. 12-openldap使用AD密码
  13. Linux环境下Node.js的安装配置
  14. how2j网站前端项目——天猫前端(第一次)学习笔记6
  15. linux 压缩命令
  16. codeforces906 D
  17. background: inherit制作倒影、单行居中两行居左超过两行省略
  18. golang 如何查看程序执行消耗时间
  19. Hadoop集群环境搭建步骤说明
  20. vscode和phpStorm使用xdebug调试设置

热门文章

  1. Qt-FFmpeg开发-视频播放【软解码】(1)
  2. vue中引入静态图片
  3. nginx部署+将安装包打包到requirements.txt文件中
  4. C#辗转相除法输出最大公约数
  5. Occlusion(遮挡剔除)
  6. 微信小程序tabBar图标显示失败问题
  7. Hanlp 在Python环境中安装、介绍及使用
  8. pgsql中over函数的应用
  9. Mybatis 中传入List实现 批量插入、批量更新、批量删除
  10. Linux 软件包 管理