王星星的魔灯
码龄4年
  • 320,214
    被访问
  • 138
    原创
  • 7,517
    排名
  • 633
    粉丝
关注
提问 私信

个人简介:勇士斗恶龙

  • 加入CSDN时间: 2018-05-12
博客简介:

王星星

博客描述:
勇士斗恶龙
查看详细资料
  • 3
    领奖
    总分 327 当月 27
个人成就
  • 获得333次点赞
  • 内容获得126次评论
  • 获得430次收藏
创作历程
  • 2篇
    2022年
  • 10篇
    2021年
  • 33篇
    2020年
  • 83篇
    2019年
  • 11篇
    2018年
成就勋章
TA的专栏
  • 面试经验
    付费
    23篇
  • 基础夯实
    70篇
  • 生活感悟
    2篇
  • 源码分析
    6篇
  • 架构思考
    2篇
  • 场景实践
    15篇
  • 采坑记录
    13篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java编程技巧

最近读了Effective Java,汇总精华并略去一些我没GET的地方,结合平时的实际开发工作,写个读后感,夹带了自己编程私货,欢迎拍砖~对象的创建和销毁1. 静态工厂方法静态工厂方法可以方便的构造一个简单实例,使得代码更易读,不用每次都创建对象。public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;}在业务应用中,可以应用在简单的Response中,尤其是不变的success响
原创
发布博客 2022.04.15 ·
270 阅读 ·
0 点赞 ·
0 评论

漫谈JavaFX

从接触软件工程到现在,我依次使用过C/Cpp/Java/Php/Python/JavaScript等编程语言,也使用过它们的一些工程化的框架,如Java系的Spring,Js系的Vue和React。因为机缘巧合,我对Java接触的更多一点,用Spring写过Web,用Jsoup写过爬虫,用Swing写过桌面,用Netty写过IM,恰好最近有一个开发桌面端工具的小需求,所以就试用了一把号称next generation client application platform for desktop, mobi
转载
发布博客 2022.02.11 ·
49 阅读 ·
0 点赞 ·
0 评论

Java8的函数式编程

Java8发布了一系列高效的操作方式,其中lambda就是一个很重要的特性。譬如我们可以利用lambda代替匿名内部类,可以更方便的创建线程,更方便的使用接口。同时Java8还结合lambda定义了一系列常用且高效的api,如forEach,Stream,Optional等等。Lambda的起源Lambda起源于20世纪40年代,是一种数学表达式λ,也是一种函数演算。这在和面向对象,面向过程并称三大编程方式的函数式编程中用的极为广泛。其实不止Java,C++也早已引入了Lambda编程,同时学习Lam
原创
发布博客 2021.08.22 ·
65 阅读 ·
0 点赞 ·
0 评论

MQ消费多业务场景的最佳实践

本质上是场景层面上的对同级业务分支过多的几种解决方案引言在很多项目中都会用到消息队列来做异步处理,那么必然会有消费者的一方。大多数时候,我们监听的消息可能包含多种topic,或者是多种bizCode,不同的bizCode需要多种处理逻辑,普通情况下,我们需要多个if-else来处理问题,如下:@Servicepublic class Subscriber implements MessageListenerConcurrently { @Override public Consum
原创
发布博客 2021.07.31 ·
129 阅读 ·
1 点赞 ·
0 评论

我在大学所构建的技术体系

从我的角度来看,我对于整个大学所学到的知识分为三个部分,第一部分是专业能力,第二部分是沟通能力,第三部分是学习能力。下面我将分段落来阐述这三大部分。一.专业能力专业能力由里及表,我主要把其分为五个子模块,分别是硬件、操作系统、编程语言、程序和业务。不过需要强调的是,这个由表及里只是狭义上的,因为我们无法断定操作系统和编程语言哪个在里面,哪个在表面。我想,我这个划分更适合按照程序员接触的角度来说明。这几个模块只针对于我自己的专业,根据我自己的理解划分的1. 硬件对于硬件来说,它主要分为CPU、GPU
原创
发布博客 2021.06.08 ·
289 阅读 ·
2 点赞 ·
2 评论

最近思考的一些技术问题

请使用任意语言写一个占用尽可能多内存,消耗尽可能多CPU的程序,程序要持续运行很长时间并且不崩溃如果使用Java的话则考察的是JVM的内存分配操作系统中的32bit和64bit是什么意思?用过哪些语言,各个语言的优缺点,为什么要用它?解释型语言和编译型语言的区别?这两种语言有什么优劣?性能,安全,编译和执行速度,内存占用?并发的目的是什么,你知道哪些并发编程的手段(语言无关)线程同步问题和安全问题如何解决?多线程的缺点如何解决?事务的特性和实现方式,要你来..
原创
发布博客 2021.06.01 ·
50 阅读 ·
0 点赞 ·
0 评论

高效Spring开发

不知道身为读者的你是否用过Java?也不知道使用Java的你是否使用过Spring?如果上面两个问题你都回复是的话,那么这篇文章你应该好好看看,它可能会使你的工程代码更加丝滑。如果上面两个问题你给出任意一个否定的回答时,你可以离开,但是如果你执意驻留在此的话,你也可能会有一些不同的收获。同时,本文不会去讲Spring的源码和原理,只讨论如何高效使用Spring的特征如果你是Java开发者,当你看到这个标题的时候可能会嗤之以鼻:“Spring的特征,这能有什么?不就是IOC和AOP吗?”你想的没错,这
原创
发布博客 2021.04.04 ·
77 阅读 ·
0 点赞 ·
0 评论

Mybatis中实体类和数据库字段的映射方式

这个东西我好久就想写了,之前在阿里实习时,所有MySQL的数据都会以D1的频率备份到ODPS上,而我负责的项目需要查询ODPS里面的数据,但是ODPS的Java SDK版本类似于JDBC一样配置多且难用,所以我就诞生了写一个针对于ODPS的工具类以方便后来者操作ODPS,在写的过程中,我发现最难的就是映射那一块,所以拖了好久,今天终于拿出时间来分析下这一块的东西。预备工作在聊Mybatis之前,还是要先说下传统的JDBC查询数据库的步骤:@Testpublic void testJdbc() {
原创
发布博客 2021.03.30 ·
2510 阅读 ·
1 点赞 ·
0 评论

SpringMVC源码分析

前几天看了分析了@RequestBody的原理,并且DIY了一个参数解析器,今天趁热打铁,分析下SpringMVC的原理,主要包括启动流程和执行流程以及其设计思路。SpringMVC中的MVC指的是model view 和 controller,view指的是渲染的视图,model指的是应用中包含的各种数据,controller则是负责业务处理的控制器。对于整个流程来说,当一个HTTP请求进入服务器之后,controller会对后台的数据,即model进行加工处理,然后由SpringMVC将这些model
原创
发布博客 2021.02.18 ·
99 阅读 ·
1 点赞 ·
2 评论

@RequestBody原理

通过Http传递参数一般有两种方式,一种是通过url解析参数,一种是通过body来解决,那么我们本次说的RequestBody就是去解析请求体然后映射到我们的参数,那 么它该如何解析body呢?这就是本篇博客诞生的目的。这个其实是SpringMVC中做的一个处理机制,在整个SpringMVC的处理流程中,会通过HandlerMethod来代理每个Map后的controller和method,在通过反射invoke method的过程中,会解析request来获得arguments,而@RequestBo
原创
发布博客 2021.01.27 ·
9318 阅读 ·
9 点赞 ·
1 评论

鹅厂六轮游

从9月2号开始腾讯的WXG一面,到9月14号的HR面结束,终于又完成了一个公司的面试,对于0offer的我来说也确实是一场莫大的慰藉吧~整体来说比较难,前三轮中八股文比较少(携程一面全是八股文,把我背的累死),因为我对C++/go不太熟悉,所以语言方面问的比较少,更多的是算法和计算机网络,操作系统,以及各种各样的场景题一面基础vector申请堆内存的方式这个不会。。。(只记得如果是小内存的话直接申请,如果是大内存大的话用mmap来申请)红黑树的结构进程通信方式共享内存(重点介绍)管道(
原创
发布博客 2021.01.11 ·
181 阅读 ·
0 点赞 ·
1 评论

拼多多二轮游

很久就投递了拼多多的拼越计划,但是笔试挂,然后在提前批的时候笔试成功,大概在9月7号的时候开始的一面,12号的时候二面,然后等了将近一个半月,直接HR面试,然后就过了。。。感觉是白菜,果断拒绝。一面第一轮面试比较偏重基础写出找到至少两门不及格的人的名次namescorecourse王星星98语文辰开26数学思路要分为两步,首先查询成绩小于60的列,将其作为一个子表,然后在该子表上进行聚合,然后在该表上查找出现次数超过两次的姓名,此时,即是所要求的答
原创
发布博客 2021.01.04 ·
211 阅读 ·
1 点赞 ·
0 评论

我的2020

几天前我刚过完21岁生日,感觉一切都好快好快,仿佛我第一次过生日就在昨天,那个时候我还小,还记得当时外婆给我拿的大蛋糕…21岁的我,经历了太多太多,我总感觉自己发生了质变,大学将近4年的积累,遇见2020年这个爆发点,让我感觉到了不一样的自己。第一次步入社会给我较大的冲击,五花八门的职场关系和形形色色的人际关系搞的我头晕眼花。某种意义上,我是一个极其自负的人,但是被社会殴打后,我明白了夹着尾巴走路。一次次的教训让我明白了在社会中,不是每个人都能和我开玩笑,也不是每个人都会为我着想。社会让我看到了我的稚嫩
原创
发布博客 2020.12.31 ·
154 阅读 ·
3 点赞 ·
2 评论

Kotlin学习笔记

作为一门Jvm的衍生语言,Kotlin在安卓阵营大放异彩,Google官方在19年IO大会上宣布全局支持Kotlin,究竟是人性的扭曲还是道德的沦丧?昨天组内安卓大神分享了Kotlin,今天我又参考了Google官方的文档,特来整理一下。壹. Kotlin的历史发展Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它主要是由JetBrains开发团队所发展出来的编程语言,其名称来自于圣彼得堡附近的科特林岛。2010年,JetBrains着手开发Kotlin项目。2011年7月,JetBr
原创
发布博客 2020.12.24 ·
169 阅读 ·
0 点赞 ·
0 评论

DIY一个参数解析器

在公司实习中,公司原有代码的RESTful请求中,GET和POST居多。我们知道,对于URL携带的参数来说,我们需要用@PathVariable,@RequestParam来进行解析和映射。对于POST的body来说,我们可以通过@RequestBody来把body映射到参数中,而Spring默认的反序列化方式是通过Jackson,我们也可以通过converter来改变。1. 从一个实验开始对于POST请求来说,前端往往会把参数序列化为Json放到body中,然后我们后端再通过@RequestBody对
原创
发布博客 2020.12.22 ·
69 阅读 ·
1 点赞 ·
0 评论

论《工作拧螺丝》

很多人都在抱怨“面试造飞机,工作拧螺丝”的现象,透过这种现象,我们不妨想一下,为什么面试需要造飞机,同时,我们在工作中,拧的到底是什么螺丝呢?这篇文章的诞生经历比较神奇,是因为我昨天晚上躺上床,闭上眼睛,突然想到的一种个人和公司业务的一种关系。然后今天来就想把这种关系表达一下。因为个人能力和见识的原因,下面的解释不一定准确,但是对于新人来说,还是有一定的参考能力的。1. 从一个问题开始首先抛出这样一个问题,公司招人的目的是什么? 相信不难回答,无论公司的业务扩张,还是公司想招聘某些特殊人才,不容置疑的
原创
发布博客 2020.12.21 ·
178 阅读 ·
0 点赞 ·
0 评论

百度三轮游

记得那是周五,一天连着四轮面试(上午两场+下午两场),上午是百度一面和shopee,下午两轮全是百度的一面String,StringBuffer, StringBuilderString是由final修饰的类,同时它是由byte(9+)或者char(8-)数组组成的,这些数组也是final的StringBuffer是线程安全的,StringBuilder是线程不安全的。StringBuffer是通过synchronized的方法级别来实现的对于StringBuffer和StringBuild
原创
发布博客 2020.12.20 ·
149 阅读 ·
1 点赞 ·
1 评论

HEXO使用指南

最近用了hexo搭建博客,踩了许多坑,所以想总结一篇文章。包括每一步的做法,以及可能踩的坑,以及应对的办法:欢迎大家访问的我新博客:https://wxxlamp.cn大家可以参考这个文档;easyhexo1. 环境准备在使用HEXO之前,我们需要安装node.js和npm(因为node.js已经包含了npm,所以我们只需要更新npm即可)。同时因为npm是国外的源,我们一般都会设置淘宝的镜像,或者是用cnpm下载node.js和npm,我是按照这个教程来的,其中的安装vue我们可以不用搞。2.
原创
发布博客 2020.12.16 ·
817 阅读 ·
2 点赞 ·
0 评论

基于Tomcat的webSocket的使用方式和源码分析

WebSocket是基于tcp的一种全双工通信的协议,它在建立连接的时候需要使用http协议,之后开始连接之后会独立出来。通过,http的每次连接都需要建立在url之上,但是webSocket只需要一个url来建立握手。常见的webSocket有多种实现方式,如SpringBoot+tomcat,或者是springboot+netty使用方式以下的代码均是基于Spring+tomcat首先会在socket那里协商ServerEndPoint注解,然后注解出几个方法,如@BeforeHa.
原创
发布博客 2020.10.12 ·
1164 阅读 ·
2 点赞 ·
1 评论

开水团四轮游

一面JavaHashMap和ConcurrentHashMapHashMap是基于拉链式的散列方法,当阈值超过3/4*cap时,就会进行桶的扩容,扩容时如果红黑树的个数小于6则重新变为链表。扩容的时候会拆分成两个链表(要么一致,要么差一个oldCap)ConcurrentHashMap有一个特别的字段sizeCtl,不同的值有不同的含义。当为负数时:-1代表正在初始化,-N代表有N-1个线程正在 进行扩容;当为0时:代表当时的table还没有被初始化;当为正数时:表示初始化或者下一次进行扩容的大
原创
发布博客 2020.09.07 ·
168 阅读 ·
0 点赞 ·
0 评论
加载更多