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

济宁网站建设案例展示备案网站域名和主机关系

济宁网站建设案例展示,备案网站域名和主机关系,东莞智通人才网最新招聘信息,哪个学校的计算机专业最好1、精确运算场景使用浮点型运算问题 精确运算场景(如金融领域计算应计利息)计算数字,使用浮点型,由于精度丢失问题,会导致计算后的结果和预期不一致,使用Bigdecimal类型解决此问题,示例代码如下…

1、精确运算场景使用浮点型运算问题

        精确运算场景(如金融领域计算应计利息)计算数字,使用浮点型,由于精度丢失问题,会导致计算后的结果和预期不一致,使用Bigdecimal类型解决此问题,示例代码如下:

float f1 = 1f -0.1f*9;
System.out.println(f1);//0.099999964BigDecimal b1 = new BigDecimal("1");
BigDecimal b2 = new BigDecimal("0.1");
BigDecimal b3 = new BigDecimal("9");
BigDecimal result = b1.subtract(b2.multiply(b3));
System.out.println(result); // 0.1

2、Static变量和实例变量的区别

比较维度静态变量实例变量
内存分配时机第一次类加载时对象实例化时
生命周期一直存在和对象生命周期一致
调用方式  类.静态变量对象.实例变量
是否全局共享对象间隔离
访问静态方法不能访问非静态变量 非静态方法可以访问静态变量

3、==、equals()、hashCode()方法的区别

  • == 比较的两个对象的地址是否相同
  • equals()比较两个对象的值是否相同
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1 == s2);//false
System.out.println(s1.equals(s2));//true
  • hashCode()方法:

在Java中,每个对象都有一个与之关联的哈希码(hash code),这是通过对象的内部状态计算出来的一个整数值,用于在哈希表等数据结构中进行快速查找‌。

Student student = new Student("1","张三",18,"1");
System.out.println("student hashCode:" + student.hashCode());//student hashCode:-1575396644

如果对象student放入hash表中,如HashMap,通过hashCode()方法的值可以快速的从Map中获取对象的位置,实现快速检索。

对象的hashCode值和对象的物理内存地址完全是两回事,student在jvm堆内存的地址才是物理地址,hashCode只是在java中如果对象放入hash表中,hash表的位置

  • hashCode和equals方法的区别及联系
Student student1 = new Student("1","张三",18,"1");
Student student2 = new Student("1","张三",18,"1");
System.out.println(student1.equals(student2));//true
System.out.println("student hashCode:" + student1.hashCode());//student hashCode:-1575396644
System.out.println("student hashCode:" + student2.hashCode());//student hashCode:-1575396644
System.out.println(student1.hashCode() == student2.hashCode());//true

两个完全不同的对象的hashCode可能一样,即hash冲突

两个对象equals方法相同,hashCode一定相同;

两个对象equals方法不相同,hashCode可能相同;

两个对象的hashCode不相同,equals一定不相同

4、JVM组成

JVM由下图红框的组件构成,具体为:

1)类加载器(ClassLoader)
2)运行时数据区(Runtime Data Area)
3)执行引擎(Execution Engine)
4)本地库接口(Native Interface)

JVM的运行流程:

1)编译 java 代码转换成字节码(class 文件)--外部执行

2)JVM通过 类加载器(ClassLoader) 把文件加载到内存中的运行时数据区(Runtime Data Area),生成堆栈等信息

3)JVM通过执行引擎(Execution Engine)将字节码翻译成底层系统识别的指令再交由CPU 去执行,此过程中需要调用其他语言的接口本地库接口(Native Interface) 来实现整个程序的功能

运行时数据区的组成说明:

1)程序计数器:是一块较小的内存空间,可以识别当前线程所执行字节码的具体位置。

2)Stack栈信息:用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

3)Heap堆信息:Java 虚拟机中内存最大的一块,是被所有线程共享的,存放对象实例

4)Method方法区:用于存储已被虚拟机加载的类信息、常量、静态变量等,是线程共享的

5、JAVA常见的内存泄露场景

        当对象不再需要时却仍在JVM内存,导致内存使用量不断增加,最终可能导致 OutOfMemoryError。

1、静态集合类引起的内存泄漏

静态集合类中加入了大量的对象没有及时清理

2、未关闭的IO资源

各类IO资源没有及时关闭,如数据库连接、线程池等等

3、ThreadLocal引起的内存泄漏

前台发送大量请求,后台每个线程中在ThreadLocal存储了大量对象,请求完成后,没有及时进行remove操作

6、Spring中使用了哪些设计模式

1)IOC容器实例化Bean对象:工厂模式

2)Bean对象管理:单例模式,IOC容器默认实例化的对象是单例

3)AOP面向切面编程:代理模式,被代理的对象实现了接口,Spring采用的JDK的动态代理,如果被代理对象没有实现接口,Spring采用CGlib代理

4)AOP中切点前向通知、返回值通知、异常通知:适配器模式

5)JDBC Template:模板方法

http://www.yayakq.cn/news/737377/

相关文章:

  • 请简述网站建设的方法镇江网站关键词
  • 网站后台无法审核手机兼职的正规平台有哪些
  • wordpress首页视频主题seo关键词排名实用软件
  • 三门峡 网站开发网站开发可选的方案有
  • 网站流量如何转化为钱西安工程网站建设
  • 网站建设 应酷深圳的网站建设
  • 网站建设和推广的完整话术郑州专业做网站的公司
  • 常德网站建设套餐报价网站前台 后台
  • 网站服务器价格织梦网站专题模板
  • 定制型网站一般价格可以在哪些网站 app做推广的
  • 网站备案流程审核单搜索引擎技术基础
  • 自助网站建设软件wordpress 网站生成app
  • 网站平台建立金融公司网站方案
  • 做柱状图 饼状图的网站石家庄局域网网站建设
  • 网站开发毕业生报告网站的设计要素
  • 网站媒体给房开做内容推广网页设计图片加载不出
  • 淘宝客怎样建设网站望江县建设局网站
  • 如何把网站上传到网上做艺术品的网站有哪些
  • 做搬家网站推广在那好企业宣传片拍摄脚本
  • 微官网和微网站首页徐州网站设计师
  • GTA5浏览器网站建设中做的网站打印全乱掉了
  • 网站服务器怎么查询app下载汅api未满入内
  • 东莞网站建设品牌建设通网站首页
  • 网站推广在哪好外贸备案的网站如何访问
  • 对电子商务网站建设与维护的总结网站开发项目比赛
  • 所有北京网站建设公司附近找工作招聘信息
  • 三合一网站开发有什么区别快速建设企业门户网站
  • 青岛建站价格杭州创意设计中心
  • 给个免费的网站好人有好报做网站总结
  • 国家电网建设部网站官网成都市武侯区建设局门户网站