51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
WOT技术大会
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
25年5月软考
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
鸿蒙
HarmonyOS NEXT
华为
几个最难回答的 Java 问题
1.为什么等待和通知是在Object类而不是Thread中声明的?一个棘手的Java问题,如果Java编程语言不是你设计的,你怎么能回答这个问题呢。Java编程的常识和深入了解有助于回答这种棘手的Java核心方面的面试问题。为什么wait,notify和notifyAll是在Object类中定义的而不是在Thread类中定义这是有名的Java面试问题,招24年经验的到高级Java开发人员面试都可能碰到。这个问题的好在它能反映了面试者对等待通知机制的了解,以及他对此...
蓝月亮
0回复
1.0w浏览
Java
JDK 15 JAVA 15 的新特性展望
伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA14。自从2017年JAVA9发布之后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,Java平台发布节奏已从每3年以上的主要版本转变为每6个月发布一次功能。现在,每年的3月和9月都会发布新的版本功能。三月已过,九月还远吗?在JAVA14中,推出了swith的最终版本,并且支持了NVM。今天本文将会展望一下JAVA15中会带给我们的新特性。总体来说有5个JEP将会提交到JAVA15。什...
七七QiQi
0回复
7964浏览
JDK15
JAVA15
jdk
java
一口气说出java中 OAuth2.0 的四种授权方式
项目偏向于技术实践,因此不会做太多的业务堆砌,业务代码还是在公司学习比较好。现在正在做技术的选型与储备,像比较主流的,项目前后端分离、微服务、Springboot、Springcloud等都会应用到项目中,其实很多技术我也不会,也是在反复的查阅资料求证,探索的过程技术提升真的要比工作中快很多,毕竟主动与被动学习是有本质区别的。这几天打算先把项目的前后端分离架构搭建完成,既然是前后端分离项目就免不了做鉴权,所以oauth2...
lingyuli
0回复
1.7w浏览
java
Java 并发编程系列——线程池
之前写了线程和锁,例子中采用直接创建线程的方式,这种方式做示例可以,但在实际生产环境中比较少用,通常会使用线程池。使用线程池有一些明显的好处,可以考虑我们使用连接池的情形,不难想像。使用线程池可以免去我们手动创建和销毁线程的工作,节省这部分资源的消耗,提高响应速度,同时线程由线程池维护,也提高了线程的可管理性。JDK中默认实现了多种线程池,如FixedThreadPool,SingleThreadExecutor,CachedThreadPool...
lingyuli
0回复
1.1w浏览
线程池
java
你真的理解 Java 的基础数据类型吗
Java中的基础数据类型有8种,分别是:byte,boolean,short,charint,float,longdouble。如果要理解这些基础类型如何存储数据,需要知道两个基础知识:所有数据都是使用二进制表示数值类型一律使用补码来表示本文基于JDK1.8整数类型byte是存储整数的最小类型,只占1个字节,因为还需要表示负数,因此只能保存128127范围内的数据。如果把一个超出范围的数值赋值给byte会怎么样?直接赋值无法编译通过:byteb129;编译通不过需要通过...
lingyuli
0回复
2.9w浏览
基础数据类型
java
Java 小想法: JDK 许可证
是的,Java已经25周岁了。25周年,我们可以聊聊Java世界的一些见闻和小想法。首先我想到的,就是JDK许可证的变化,以及随之而来的困惑、误解,以及变化带来的生态效应。这两年,影响Java生态格局最大的事情,莫过于起始于2018年的JDK许可模式和发布模式的变更。老的许可证什么样?十多年来,JavaSE的授权一直使用BCL模式。BCL模式允许用户在一定的限制条件下,免费使用JDK。比如,下面就是一个免费许可及其限制的条款:2.LICENS...
lingyuli
0回复
1.2w浏览
Java
JDK
为什么建议你在JAVA中使用枚举?
枚举是JDK1.5新增的数据类型,使用枚举我们可以很好的描述一些特定的业务场景,比如一年中的春、夏、秋、冬,还有每周的周一到周天,还有各种颜色,以及可以用它来描述一些状态信息,比如错误码等。枚举类型不止存在在Java语言中,在其它语言中也都能找到它的身影,例如C和Python等,但我发现在实际的项目中使用枚举的人很少,所以本文就来聊一聊枚举的相关内容,好让朋友们对枚举有一个大概的印象,这样在编程时起码还能想到有...
lingyuli
0回复
1.4w浏览
java
枚举
读懂才会用:Redis ZSet 的几种使用场景
本文展示延时队列、排行榜、限流具体的使用方法和问题,供大家参考。代码示例,仅仅是Demo,在生产使用需要考虑更多细节问题。1.延时队列zset会按score进行排序,如果score代表想要执行时间的时间戳。在某个时间将它插入zset集合中,它变会按照时间戳大小进行排序,也就是对执行时间前后进行排序。起一个死循环线程不断地进行取第一个key值,如果当前时间戳大于等于该key值的score就将它取出来进行消费删除,可以达到延时执行的...
lingyuli
0回复
1.6w浏览
Redis
java
Java 中的两种 BIO
核心结论:不同版本jdk实现方式不一致如果不给socket设置nonblocking,accept会阻塞直到数据到达poll的调用是阻塞的,直到注册的event发生后,返回发生事件的fd环境准备centOS7jdk1.5.0jdk1.8.0strace测试代码BIOServer.javaimportjava.io.IOException;importjava.net.ServerSocket;publicclassBIOServer{publicstaticvoidmain(String[]args)throwsIOException{ServerSocketservernewServerSocket(8080);while(true){server.acc...
lingyuli
0回复
8866浏览
java
BIO
简单完整讲述Servlet生命周期
Servlet生命周期过程详解:1.加载web.xml文件——当前只去解析xml文件,知道servlet的存在,此时还没有去创建servlet。<!声明servlet><servlet><!servlet的别名><servletname>first<servletname><servletclass>com.etime.servlet.FirstServlet<servletclass><servlet><!将servlet与URL绑定><!servlet映射部分><servletmapping><servletname>first<servletname><urlpattern>hello<urlpattern><servletmapping>2.创建构造函数——...
柳随风
0回复
1.2w浏览
tomcat
servlet
Java
jsp 九大内置对象及其作用
一,JSP九大内置对象JSP中一共预先定义了9个这样的对象,内置对象名类型requestHttpServletRequestresponseHttpServletResponseconfigServletConfigapplicationServletContextsessionHttpSessionexceptionThrowablepageObject(this)outJspWriterpageContextPageContext1、request对象request对象是javax.servlet.httpServletRequest类型的对象。该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包...
柳随风
0回复
7813浏览
JSP
一文看懂前端和后端开发
作为一名开发者,你可能会想:2019年最好的软件开发技术和编程语言会是什么?它们又是如何被应用在软件开发当中的?如果你在思考这个问题,那就来对地方了。这篇文章将对前端和后端开发技术做一个对比,先从基本的开始,然后逐步比较它们的不同点,比如对开发技能的要求、发展潜力、职业生涯的发展和薪水,等等。什么是前端开发?前端开发主要涉及网站和App,用户能够从App屏幕或浏览器上看到东西。简单地说,能够从App屏幕和浏...
柳随风
0回复
2.1w浏览
前端
后端
开发
JAVA面试官:你们公司用什么框架写 UT
为什么要写单元测试优点:单元测试可以减少bug率,提升代码的质量。还可以通过单元测试来熟悉业务。公司硬性要求:有些公司可能还会强制要求,每次新增代码、或者变更代码单测覆盖率要达到多少比例才能申请代码合并请求。选择哪个单元测试框架目前应用比较普遍的java单元测试工具junit4+Mock(Mockito、jmock、EasyMock、powermock)。为什么会选择powermock?在做单元测试的时候,我们会发现我们要测试的方法会有很多外部依赖的...
lingyuli
0回复
9922浏览
JAVA
一个包子铺看懂 JAVA中I/O 模型演变
小眼睛打算开个包子铺,拜访了N个餐饮界大佬后,决定直接搞O2O模式。依据大佬们透露的数据,省掉了房租、水电、工资,结合平台的优势只要按照每年10%的增速,用不了多久就能迎娶白富美走上人生巅峰了。在美好的幻想中,包子托拉斯开业了……BIO开张第一个月,下单量短暂增长,一周之后开始迅速滑落。持续收到大量投诉:客户投诉送餐太慢,骑手投诉取餐等待太久。眼看着刚开张,就有倒闭的预兆。包子托拉斯请来了著名咨询公司鹰...
lingyuli
0回复
9337浏览
JAVA
JDK 15 都发布了,可 Java 8 依然是最爱
Java都已经25岁了,想必比在座的很多同学年龄还大吧。在JDK版本的世界里,从来都是Oracle发他的新版本,我们继续用我们的老版本。4年之前用JDK7,后来终于升级到了JDK8。自从升级了没多久,JDK就开始了半年发一个新版本的节奏,陆续发布了9、10、11、12、13,别着急,还有14,直到前几天(2020年5月28日)日,连JDK15的抢先试验版都出来了,不禁要说,Java你真行。2020年2月,由Snyk和TheJavaMagazine联合推出发布的2020JVM生态调...
lingyuli
0回复
1.2w浏览
JDK
java
JAVA中延时任务的几种实现方式
一、应用场景在需求开发过程中,我们经常会遇到一些类似下面的场景:a.外卖订单超过15分钟未支付,自动取消b.使用抢票软件订到车票后,1小时内未支付,自动取消c.待处理申请超时1天,通知审核人员经理,超时2天通知审核人员总监d.客户预定自如房子后,24小时内未支付,房源自动释放那么针对这类场景的需求应该如果实现呢,我们最先想到的一般是启个定时任务,来扫描数据库里符合条件的数据,并对其进行更新操作。一般来说spring...
lingyuli
0回复
2.1w浏览
java
Java 程序员月薪三万,需要技术达到什么水平?
最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿二万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top1...
lingyuli
0回复
7961浏览
java
修改 Tomcat 窗口的名称
当在服务器上部署多个项目且放在不同的tomcat中时,就会打开多个tomcat窗口,而这些tomcat窗口的名称都是"Tomcat"。此时可以修改tomcat窗口,方便我们识别。tomcat8.5.34中的bin目录下的catalina.bat文件中的配置参数。来源:InfoQ
baby_030
0回复
8454浏览
Java
Tomcat
java之Kotlin 协程实践之进程、线程、协程
本文自RomanElizarov在KotlinConf2018关于Kotlin协程演讲和笔者构建网络爬虫服务实践过程中的一些总结而来。由于篇幅和精力限制,打算分多篇文章逐步写作完成,敬请期待!知其然才能知其所以然,为了能用好协程,我们不得不先从一些理论开始!进程、线程、协程为了了解为什么要提出协程这一概念,让我们先来回顾一下历史。进程进程是操作系统里面的概念。操作系统最大的需求是要“同时”运行多个任务(程序),于是用进程来封装...
lingyuli
0回复
7817浏览
Kotlin
java之Kotlin 协程实践之 异步和 Callback 地狱
Kotlin协程实践系列文章自RomanElizarov在KotlinConf2018关于Kotlin协程演讲和笔者构建网络爬虫服务实践过程中的一些总结而来。kotlin协程实现了同步非阻塞编程模式,目的之一就是让程序逻辑不阻塞当前线程,从而提高吞吐量和线程利用率。在开始之前我们还需要明白几个重要的概念。同步、异步&阻塞、非阻塞这几个概念,在刚开始参加工作的头几年里,一直没搞明白,感觉非常烧脑。网上也有很多文章通过举例子的方式来解释,但终...
lingyuli
0回复
1.8w浏览
java
暂无内容
1
58
59
60
61
62
63
64
65
66
67
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅