当前位置: 首页 > 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.wangmingla.cn/news/66598.html

相关文章:

  • 监测网站定制酒店营销推广方案
  • 做网站的如何开发业务网络推广培训
  • 建设网站需要的资质证书网络营销促销策略有哪些
  • 网站从制作到使用的全过程免费的网络推广平台
  • 如何做国外网站推广跨境电商哪个平台比较好
  • 自己做网站上市58同城推广效果怎么样
  • 做app还要做网站么百度快照收录入口
  • 网站地图优化市场推广外包团队
  • 老薛主机wordpress网站推广优化排名公司
  • 软件外包交易平台超级seo助手
  • 小程序注册平台站长工具 seo查询
  • 专业网站建设教程青岛网站设计制作
  • 网站建设注意事项拓客软件排行榜
  • 郑州做网站首选九零后网络网站站点查询
  • 网站编辑转行做文案百度公司官网招聘
  • 织梦网站后台教程百度app官方下载安装
  • 想做一个自己设计公司的网站怎么做的软文代写接单平台
  • 得到做网站公司舟山百度seo
  • 网页设计师培训费用图郑州seo优化外包公司
  • 汕头网站建设和运营aso关键词优化计划
  • 公司网站怎么发布文章电商培训班一般多少钱
  • 好的网站设计制作适合口碑营销的产品
  • 企业网站模板营销网站建设哪家快
  • 自贡做网站的公司百度关键词规划师
  • 网站建设材料拉新平台哪个好佣金高
  • 做360网站中保存的图片存在哪里目前疫情最新情况
  • 企业自己建网站怎么建手游推广渠道和推广方式
  • 杭州手机网站建设农产品营销方案
  • 中山市智能h5网站建设公司chrome谷歌浏览器
  • 网络工程师和做网站哪个难正规拉新推广平台有哪些