Spring工程无法注入bean的地方如何获取bean

0

Java之父在Oracle收购Sun后加入谷歌

谷歌聘请了Java的创始人詹姆斯·高斯林(James Gosling),他在被甲骨文收购后离开了Sun Microsystems。

戈斯林(Gosling)写道,他周一将在Google“开始工作”,但他表示不清楚将以何种身份加入谷歌。

戈斯林在博客中写道:“我不知道我会做什么。”

Gosling是Sun Microsystems的副总裁兼研究员,在那里他创建了Java编程语言的原始设计并实现了其原始的编译器和虚拟机。 这项工作使高斯林被誉为Java之父。

业界的目光都集中在高斯林身上,他在2010年4月离开了甲骨文公司的职位。高斯林是在甲骨文以74亿美元收购Sun之后离职的。在他离开甲骨文的时候,高斯林在一篇博客中暗示,甲骨文的工作环境和他在Sun的经历有很大的不同。

戈斯林当时写道:“就我所说的准确和诚实而言,弊大于利。”

高斯林加入谷歌的同时,Oracle和谷歌也卷入了一场有争议的Java专利诉讼。同年8月,甲骨文起诉谷歌,称谷歌的Android移动操作系统侵犯了Java的专利和版权。谷歌在一份法庭文件中否认了甲骨文的指控,并试图宣布这些专利无效。在诉讼中,甲骨文称Java是“甲骨文从Sun收购的最重要的技术之一”,并指出Java已经吸引了650多万开发人员。

高斯林指出,他有很多机会,但谷歌“看起来是一个有很大魅力的公司。”

在高斯林之前,在甲骨文(Oracle)收购Sun之后,其他一些知名的前Sun员工也被谷歌收购。去年,谷歌邀请了前Sun高管、XML共同创始人蒂姆·布雷(Tim Bray)作为Android的倡导者。在甲骨文收购Sun之后,布雷也离开了Sun。

0

el-upload+springboot实现excel文件手动上传导入数据

vue 前端代码

springboot 后端代码

0

vue+springboot+hutool-poi实现导出excel

vue

springboot

hutool-poi pom 依赖

总结

以上就是vue+springboot+hutool-poi实现导出excel核心代码

+2

Java语言之父的伟大成就

詹姆斯·高斯林:Java之父

“一个伟大的头脑永远不会将自己局限于世界上可用的技术,他以卓越的想法和远见向前迈进,以改进现有技术更好的工作为世界服务。”

是的,我说的是詹姆斯·高斯林(James Gosling),举世闻名的Java语言之父。很多人都认同的是,詹姆斯是世界上最令人赞誉的编程语言Java的创建者和创始人。

詹姆斯·高斯林的历史

这位杰出的技术人员于1955年5月19日出生。加拿大的艾伯塔省卡尔加里(Calgary)就是一个拥有如此出色的人的地方。 詹姆斯从小就对当时新兴的计算机技术产生了浓厚的兴趣。

因此,他于1977年获得了非常著名的加拿大卡尔加里大学的计算机科学学士学位。1983年晚些时候,他又从卡内基梅隆大学攻读了计算机科学博士学位。 在PHD时,他的博士论文题为“约束的代数操纵”。

在他学习期间,他还致力于编写Emacs(他称为Gomacs),还致力于开发操作系统UNIX的多处理器版本以及几种编译器以及邮件系统。

在1984年,Sun Microsystems聘请了这位伟人。 高斯林(Gosling)与Sun Microsystems合作了长达26年的时间,在被Oracle收购后离开了。 2011年晚些时候,他加入了Google公司。

他在那里工作了一段时间,后来又加入了他以前的Sun同事,创立了一家名为“ Liquid Robotics”的创业公司。 几年后,Liquid Robotics被波音公司收购。 在这件事发生后,高斯林离开了它,后来从2017年5月开始与亚马逊合作。

詹姆斯是Java之父

在Java语言开发之前,世界就依赖于C ++,C ++包含了几种概念,并且在那时看起来很完美。 但是后来意识到,由于C ++是平台相关的,因此C ++仅对一组特定的设备进行编程。 这促使James致力于创建一种独立于平台的语言,该语言除了计算机之外还可以用于对其他设备进行编程。 James与他的一些同事于1991年开始致力于开发这种语言。James花了18个月的时间开发了该语言的第一个工作版本。 它最初被命名为“OAK”,后来在1995年被永远命名为“ JAVA”。 James奠定了Java的最初布局,还发明了编译器和虚拟机。 众所周知,Java是一种范围最广的语言,它以其惊人的功能和简单性改变了互联网。 我们应该感谢詹姆斯·高斯林(James Gosling)给我们带来的这个福音。

詹姆斯的成就:

  1. 在2002年,James获得了Flame的“ THE ECONOMIST”创新奖以及“终身成就奖”。
  2. 2007年,他被授予“加拿大勋章”。 这是加拿大任何和平主义者都能获得的第二高荣誉。
  3. 在2015年,他被授予“IEEE约翰·冯·诺伊曼奖章”。

世界将永远拥抱这位伟人所做的伟大工作,Java之父将永远活在在每个程序员的心中。

0

sql case when 无效问题

这个sql走不进when null的分支,换成下面这个就可以了

有谁知道是什么原理呢?麻烦留言告知,谢谢

0

mybatis里设置事务自动提交

+1

Java OOM问题模拟及定位解决

模拟OOM代码

设置参数并启动

启动的时候,在idea的VM options里填上-Xmx10m,设置一下最大堆内存

可以看到不久出现了错误

字面意思就是垃圾回收的内存超出限制,达到天花板了。

OutOfMemoryErrorjava.lang.VirtualMachineError的子类,当JVM资源利用出现问题时抛出,更具体地说,这个错误是由于JVM花费太长时间执行GC且只能回收很少的堆内存时抛出的。根据Oracle官方文档,默认情况下,如果Java进程花费98%以上的时间执行GC,并且每次只有不到2%的堆被恢复,则JVM抛出此错误。换句话说,这意味着我们的应用程序几乎耗尽了所有可用内存,垃圾收集器花了太长时间试图清理它,并多次失败。

为什么会这样?

这首先要了解哪些占用内存的对象会被垃圾回收器回收,那就是没有被引用的对象,随着我们的list越来越大,list会被丢到old区,但是每次Full GC的时候又不能回收list。

JVM使用的是什么垃圾回收器?

可以使用下面两个命令来查看

可以看到使用的是+UseParallelGC,jdk是1.8.0_152

如何定位解决有问题的代码?

打开java自带的jmc.exe工具,可以在热点类里面找

或者jconsole.exe

理想的解决方案是通过检查可能存在内存泄漏的代码来发现应用程序所存在的问题,这时需要考虑:

  • 应用程序中哪些对象占据了堆的大部分空间?(What are the objects in the application that occupy large portions of the heap?
  • 这些对象在源码中的哪些部分被使用?(In which parts of the source code are these objects being allocated?

通过更改JVM启动配置来增加堆大小,或者在JVM启动配置里增加-XX:-UseGCOverheadLimit选项来关闭GC Overhead limit exceeded

但增加-XX:-UseGCOverheadLimit选项的方式治标不治本,JVM最终会抛出java.lang.OutOfMemoryError: Java heap space错误。

最终还是要找到有问题的代码进行修改。

0

idea里uuid插件安装使用(uuid和ulid区别)

安装

有的时候我们需要信手拈来一个uuid,方法当然有很多,最方便的莫属安装一个UUID Generator插件了。

用法

安装好后,使用alt+insert组合快捷键键呼出菜单。

  • 功能1:直接生成随机uuid(36位带分隔符)到光标后面
  • 功能2:生成uuid到剪贴板
  • 功能3:弹出uuid设置框,可以设置字母大小写,是否需要分隔符,uuid的长短,前缀和后缀等,总之就是非常的银杏。
  • 功能4:生成ulid到光标后面
  • 功能5:生成ulid到剪贴板
  • 功能6:弹出ulid的设置框
uuid 生成配置
ulid 生成配置

具体使用的效果,可以自行尝试。

UUID和ULID的区别

  1. uuid是基于随机数或伪随机数生成,而ulid是结合时间戳和随机数生成。
  2. uuid的字符域是基于16 (10+6)字符,而ulid是32(22 + 10) 字符。
ulid结构
0

list集合中去除重复元素三种方法总结

0