当前位置: 首页 > news >正文

java基础

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.JVM的class文件的原理机制? 由类加载器(ClassLoader)和它的子类实现的。java中的类加载器是一个重要的java运行时系统组件,它负责在运行后是查找和装入类文件中的类。 当java程序需要某个类时,JVM会确保这个类已经被加载,连接和初始化。类的加载是指把类的.class文件中的数据读入到内存中。通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证,准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。最后JVM对类进行初始化。 包括:1.如果类存在直接的弗雷并且这个类没有被初始化,那么久先初始化父类;2.如果类存在初始化语句,就一次执行初始化语句 2.java使用的编码是Unicode,使用Unicode意味着字符在JVM内部和外部有不同的表现形式,在JVM内部使用Unicode,当这个字符被从JVM转移到外部时(例如存入文件系统中),需要进行编码转换。所以java中有字节流和字符流,一级在字符流和字节流之间进行转换的转换流。 应为java中是用的Unicode为不选择任何特定的编码,直接使用字符在字符集中的编号,一个插入类型占连个字节,16比特,所以放一个中文是没有问题的。 3.抽象类和接口: a:都不能被实例化,但是可以定义引用。 b:接口比抽象类更抽象。 c:接口的成员都是用public的。 4抽象方法是需要被子类重写,而静态方法是无法被重写的,因此二者是矛盾的。本地是由本地代码实现的方法,二抽象方法是没有实现的,也是矛盾的。synchronized和方法的实现细节有关,抽象方法不涉及实现细节,因此也是相矛盾的。 5.一个“.java”源文件中可以有多个类(内部类不算),但是最多只能有一个公开类(public),而且文件名必须和公开类的类名完全保持一致。 6.java和javaScript的异同 a:基于对象和面向对象,java为面向对象,js是脚本语言,用来制作与网络无关的,与用户交互作用的负责软件,他是一种基于对象和时间驱动的编程语言, b:解释和编译。java的源代码在执行之前,必须经过编译,js是一种解释性编程语言,其源代码不需要经过编译,由浏览器解释执行。 c:java采用墙类型变量检查,即所有变量在编译之前必须做生命;js中的变量属于弱变量,甚至在使用变量前可以不作声明,js的解释器在运行时检查推断其数据类型。 d:代码格式不一样 e:java是静态语言,java中类时一等公民,而在js中方法是一等公民。因此js支持函数式编程。

转载于:https://my.oschina.net/u/3045515/blog/1031538

相关文章:

  • Vue Devtools--vue调式工具
  • 用awk写递归
  • python if 语句,布尔运算
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • IPv4 forwarding is disabled. Networking will not work.
  • 技术架构组工作职责
  • 第7章 高级分组
  • MySQL数据库的高可用方案总结
  • 一个扎心的错——Consider defining a bean of type 'java.lang.String' in your configuration.
  • Buffer源码深入分析
  • 以太坊共识机制
  • 浅析NSTimer CADisplayLink内存泄露
  • hdu 2227
  • ViewPager+RadioGroup实现标题栏切换,Fragment切换
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • [译]如何构建服务器端web组件,为何要构建?
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android 控件背景颜色处理
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ERLANG 网工修炼笔记 ---- UDP
  • gulp 教程
  • Idea+maven+scala构建包并在spark on yarn 运行
  • isset在php5.6-和php7.0+的一些差异
  • Java程序员幽默爆笑锦集
  • Java应用性能调优
  • js写一个简单的选项卡
  • Kibana配置logstash,报表一体化
  • oschina
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PhantomJS 安装
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Zsh 开发指南(第十四篇 文件读写)
  • 编写符合Python风格的对象
  • 官方解决所有 npm 全局安装权限问题
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 警报:线上事故之CountDownLatch的威力
  • 用 Swift 编写面向协议的视图
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #define与typedef区别
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #图像处理
  • (12)Linux 常见的三种进程状态
  • (2)(2.10) LTM telemetry
  • (编译到47%失败)to be deleted
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)visual stdio 书签功能介绍
  • (转载)hibernate缓存
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .net 后台导出excel ,word