浅谈与JAVA的故事

简介: 虽然自己是一名大前端开发者,但是技术涉猎不局限于前端领域,再加上之前工作需要,接触到了JAVA的开发。在之前有一期话题讨论中我讲到,自己在一家美资企业上班的时候,负责部门软件相关的工作,前后端都要开发,所以在那时候才真正的接触到JAVA的开发,虽然在上大学的时候只是学习理论课,但是仅仅是理论课而已,个人感觉没有实际开发的JAVA经历是不算真正的接触JAVA领域的。

前言

虽然自己是一名大前端开发者,但是技术涉猎不局限于前端领域,再加上之前工作需要,接触到了JAVA的开发。在之前有一期话题讨论中我讲到,自己在一家美资企业上班的时候,负责部门软件相关的工作,前后端都要开发,所以在那时候才真正的接触到JAVA的开发,虽然在上大学的时候只是学习理论课,但是仅仅是理论课而已,个人感觉没有实际开发的JAVA经历是不算真正的接触JAVA领域的。

众所周知,Java是一门非常棒且很受欢迎的开发语言,在后面的GO等编程语言未出来之前,Java在后端领域占着举足轻重的“统治”地位,程序员老兵无论是前端开发还是后端开发,在工作经历中或多或少都接触和使用过Java,包括笔者在内,对于Java的语法和使用,并不陌生,随时可以上手使用。

实战经历

首先来分享一个笔者的亲身经历,时间回到5年前,也就是2018年,刚入职一家美资企业,但是这家美资企业关于国内的环境很陌生,是做智能硬件研发为主,结合软件使用,出现很大的水土不服的情况,当初成立技术研发部门的时候,笔者加入之后是负责软件研发部分,硬件研发部分有另外一个负责人。当初成立技术研发部之后,首先就是搭建国内节点的服务站点,以及基于硬件相关的数据存储相关,还有企业的国内官网,与硬件结合的原生app和微信小程序等等,这些都是离不开服务器的搭建以及配套的服务,针对以上内容,其实重点就是关于硬件与软件交互的后端程序,这个后端程序就是笔者用Java来实现的,这也是第一次真正使用Java做项目开发。

记得很清楚,当时boss主张自己搭建服务站点以及相关的配套设置,因为国外的云厂商服务在国内的费用有点贵,而且boss觉得没必要买那么贵的服务。但是后来还是没有自己搭建服务站点,原因就是投入的人力、物力不符合企业的策略,后来笔者建议使用国内的云厂商提供的云服务,boss刚开始不同意,原因就是他完全不了解国内的云厂商的特点,他最关心的是安全问题,毕竟智能硬件是公司的核心,他担心硬件的一些核心参数泄密。

好在经过笔者深度了解了国内的几家云厂商,然后做了详细的对比方案,以及云厂商的详细介绍,再经过几次技术研讨会之后,最终选择了阿里云的云服务产品,甚至最后的美国的服务站点也是购买的阿里云的海外版,当时海外版的节点买的是阿里云佛吉尼亚站点,自从使用了阿里云的云产品之后,给当时的技术部节省了太多事情,而且减轻了太多的运维压力,而且通过Java把硬件和软件直接的交互以及数据存储都处理妥当,这是一个非常有成就感的事情。

排查问题

笔者在使用Java做开发工作的时候也遇到了很多问题,都是通过逐步排查进行解决的,个人觉得在做程序开发的时候定位问题比写代码更重要,比如通过输出日志、使用idea编辑器自带的调试功能等,都是很好的排查问题的操作方式。这是在日常开发中常用的排查操作,而且也是Java求职面试中必问内容。分享一下自己开发的登录相关的代码局部,如下所示。

public interface UserService {
    /**
     * 用户注册
     *
     * @param userId
     * @param dto
     * @throws Exception
     /    void userRegister(Long userId, UserRegisterDTO dto) throws Exception;    /*
     * 忘记密码
     *
     * @param userId
     * @param dto
     * @throws Exception
     /    void updatePassword(Long userId, UpdatePasswordDTO dto) throws Exception;    /*
     * 通过邮箱发送验证码
     *
     * @param userId
     * @param email
     * @throws BusinessException
     /    void sendVerificationCode(Long userId, String email) throws BusinessException;    /*
     * 通过用户名密码获取用户
     *
     * @param loginName
     * @param loginPwd
     * @return
     * @throws BusinessException
     */
    User getUser(String loginName, String loginPwd) throws BusinessException;
}

拓展

使用Java开发的都知道,Java其实是一种多线程语言,它可以使用多线程来执行并发任务,但是,并发编程可能会导致一些棘手的问题,比如死锁。

死锁其实也是一种并发问题,如两个或多个线程相互等待对方释放资源。死锁可能会导致程序挂起并无限期地等待,引起性能问题,由于并发过高,应用难以承载,可以采用多级缓存,应用限流等手段,去解决高并发的问题。

截图.png

最后

上面简单分享了一下自己与Java的故事,虽然我不是后端领域的开发者,但是我有一个乐意探索的心,愿意去涉猎自己不擅长的领域,我觉得在做Java开发的时候,有一种很棒的体验,尤其是在写业务逻辑的时候,接口调通那一刻,非常有成就感,做其他语言开发没有做Java开发这么明显,可能这正是Java语言特有的魅力所在吧!

相关文章
|
安全 Java 数据安全/隐私保护
【用一个故事介绍Java的封装继承多态】
【用一个故事介绍Java的封装继承多态】
|
1月前
|
存储 Java 程序员
Java灵魂拷问13个为什么,你都会哪些?
【11月更文挑战第6天】本文回答了一些常见的 Java“灵魂拷问”,包括 Java 跨平台的原因、垃圾回收机制的作用、接口不能有实例变量的原因、字符串不可变的好处、异常处理机制的意义、类加载机制的双亲委派模型、多线程同步机制的重要性、重写方法访问修饰符的限制、包装类的存在意义、`equals()` 和 `hashCode()` 方法一起重写的原因、静态方法不能被重写的原因、`ArrayList` 扩容策略的权衡,以及 `final` 关键字的多种用途。
|
6月前
|
Java 程序员
老程序员分享:Java基础
老程序员分享:Java基础
29 0
|
分布式计算 安全 Java
带你走进JAVA的世界|用心感受JAVA
带你走进JAVA的世界|用心感受JAVA
106 0
|
7月前
|
Java 编译器 数据库连接
Java学习—初入Java
Java学习—初入Java
|
机器学习/深度学习 人工智能 安全
Java 在生活中的 10 大应用
Java 在生活中的 10 大应用
257 0
|
Java
java202302java学习笔记第十三天-java文字游戏格斗2
java202302java学习笔记第十三天-java文字游戏格斗2
70 0
java202302java学习笔记第十三天-java文字游戏格斗2
|
Java Unix 程序员
【随笔记】我与Java的故事
【随笔记】我与Java的故事
72 0
【随笔记】我与Java的故事
|
设计模式 IDE 前端开发
你见过哪些目瞪口呆的 Java 代码?
你见过哪些目瞪口呆的 Java 代码?
136 0
|
安全 Java 数据中心
Java缘起篇
Java 是由 Sun Microsystems 在 1995 年首先发 布的编程语言和计算平台。有许多应用程序和 Web 站 点只有在安装 Java 后才能正常工作,而且这样的应 用程序和 Web 站点日益增多。Java 快速、安全、可 靠。从笔记本电脑到数据中心,从游戏控制台到科学 超级计算机,从手机到互联网,Java 无处不在!
140 0
Java缘起篇