能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
一个写代码的....
上一篇文章:多线程编程之线程间通信机制:wait/notify机制重点讲了在java多线程 编程中协调线程间通信的wait/notify机制,它有力的保证了线程间通信的安全性以及便利性。这篇文章就来说说如何使用前面说到的wait/notify机制实现生产者/消费者模式。
在多线程编程中往往需要多个线程之间进行通信从而完成一个复杂的系统。比如有两个线程,线程A和线程B,线程B的执行需要等到线程A的反馈信息,如果满足了条件则线程B执行,否则线程B进行等待。这就是线程间等待和通知机制。
多线程中的同步,指的是如何开发出线程安全的程序或者应用,也就是得解决非线程安全所带来的一些相关问题-----脏读。
Git分布式版本控制系统是我们日常开发中不可或缺的一部分,能够大大提高我们协同工作的效率。前面的一篇文章如何玩转Git介绍过Git的相关知识。在工作中往往我们需要使用Git的可视化管理工具进行版本控制。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit等等,我们公司主要使用的是SourceTree。该篇文章主要结合日常开发工作的对于sourctree的一些常用操作进行讲解和总结,帮助没有使用过的同学进行快速入门,希望能对大家有所帮助!
前面的几篇文章主要介绍了java中多线程编程中线程的一些概念。比如线程编程中一些常用的API,以及线程的暂停的恢复还有线程的终止。这些都是多线程编程的入门的基础,涉及到的都是单个线程使用,今天这篇文章就来说说在多线程编程中线程池的概念。
前面的文章多线程编程之停止线程的几种方法介绍了停止线程运行的三种方法:
前面的文章线程以及线程的常用方法介绍了线程的使用。线程除了在执行处理完成其任务后会停止外,还可以通过一些方法进行干预停止其运行。停止一个线程意味着在线程处理完成任务之前结束其正在执行的操作。
之前的两篇文章讲解了一些关于线程的相关概念和知识点,线程这块内容在平时的开发或者找工作的面试中也是常常被问起的知识点。之前写文章也是比较乱,想到什么写什么,没有一定的组织性,所以准备后面以系列文章的方式来记录和总结一些关于线程的知识点。我自己也是个学习者,通过写文章的方式来加强自己对于知识点的掌握和理解,所以如果有一些不正确或者不全的地方,欢迎大家指正。
指令是Vue模板中最常用的一项功能,它带有前缀v-,主要职责是当其表达式的值改变时,相应的将某些行为应用在 DOM 上。
在日常的开发中,我们都会习惯记录日志,通过日志我们可以记录程序在何时何种情况发生过何种事情,有助于我们快速地定位bug和修复bug。在任何一种数据库中,也有着各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事情。在MySQL中,有着四种不同的日志,它们分别是错误日志,二进制日志(也叫BINLOG日志),查询日志以及慢日志。今天这篇文章就来说说,MySQL的这四种常用的日志!
在java的并发编程中我们经常会使用到Volatile关键字。而关于Volatile关键字的使用以及Volatile关键字的特性和实现原理也是在笔面试中经常会遇到的问题了。
在笔试面试的时候经常会遇到的一个问题:Spring 的 Controller 是单例还是多例?
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
目前很多公司的开发模式都是前后的分离的分工模式,这样能够做到各司其职,提高开发的效率。之前也有文章介绍了springboot项目和vue创建一个简单的前端项目,这篇文章则是将springboot和vue进行简单的整合,实现一个简单的登录页面。
现在越来越注重版本的问题,所以很多的文章都需要进行署名,类似于这样:
最近因为公司的事情比较多,任务比较重,所以很长时间没有更新文章了。最近因为工作上的内容突击学习了很多的内容,比如今天我要讲的。
最近公司的老的项目重构,改成了前后端分离的架构,前端采用的是vue.js前端框架,所以接触到vue.js。
都说不会前端的测试不是一个好的后端开发。最近维护一个老的项目,其中的前端代码使用到了JQuery,由于自己以前对前端的了解并不是很多,没有系统的学习,都是遇到了问题才学习一下, 所以这次对Jquery进行了一次学习。
现在很多公司的项目都使用前后端分离的开发模式,这样不仅仅能提高开发效率,还能方便维护。在进行前后端分离开发时,后端的开发人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性,这就需要前后端的开发人员的开发进度保持一致,但是就算是这样也提高了测试的难度,不利于及时完成功能模块的测试。所以后端开发人员,在独立开发完成某个接口后,需要自己先进行测试,这样不仅能提高开发的效率,而且还能减少送测时的bug。
Linux和windows相比它的特点在于很多东西都要用命令来控制,这是它比较复杂的地方,不像windows比较便捷,但是,这同样也是很多人喜欢Linux的原因,比较短小但却功能强大,而作为程序员Linux可以说不要完全精通,但是常用的命令是必须要掌握的,最近刚好需要和Linux打交道,所以我就整理了一些Linux常用的命令,方便自己后续不记得的时候可以拿来复习下,也希望能帮助到同样需要的同学。
我们都知道SpringBoot的出现使得在开发web项目的时候变得更加方便、快捷。之前写过一篇文章是如何快速搭建一个springboot项目:SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目。本文则介绍下如何基于SpringBoot开发Restful风格的接口实现来CRUD功能。
使用final关键字修饰一个变量时,是指引用变量不能变,但是引用变量所指向的对象中的内容还是可以改变的。
这里其实问的是静态方法和非静态方法的区别: 静态方法和非静态方法的区别可以总结如下:
随着年龄的增长,记性越来越差了!有一段时间没有在自己的电脑上进行数据库操作,今天突然兴趣来了想码两段代码时,突然发现忘记了自己MYSQL的用户名和密码。只好又重新更改数据库的密码。相信应该也有不少人有过同样的经历,想起之前不知道如何修改密码时也是急得手足无措,一顿baidu,所以现在将如何更改数据库密码和设置数据库免登录的方式记录如下,这里是以MySQL数据库为例。 One
在日常的开发中经常需要使用到正则表达式,它是涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在比如验证一个邮件是否是合法的邮件地址,验证身份证是否合法等等都可以使用正则表达式。
1995 年,GoF(Gang of Four,又叫四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,称之为GoF设计模式或者设计模式GOF23。这23种设计模式并不是语法结构,而是对最基本的面向对象设计原则、面向对象的三大基本特征(封装性、继承性和多态性)以及类的与类之间的关联、组合关系进行的经验总结,从而来提高代码可复用性、可维护性、可读性、稳健性以及安全性。
作为一个后端的开发每天都要跟数据库打交道,不管你是Java开发、PHP开发还是Python开发,你可以不会其他的语言,但是数据库是都必须掌握的。而MySQL则是很多的公司采用的主流数据库之一。所以了解MySQL的体系结构能够帮助我们更熟练的掌握MySQL,大大提高平时的开发效率。
在说ElasticSearch之前先来说说什么是搜索引擎。搜索引擎,即Search Engine,是一个帮助用户搜索他们需要内容的计算机程序,即把计算机中存储的信息与用户的信息需求(information need)相匹配,并把匹配的结果展示出来。简单点说,搜索引擎就是万维网环境中的为了使网民搜索信息的速度更加快捷、准确信息检索系统。常见的搜索引擎有百度、谷歌、搜狗等。
我除了在运营掘金以外,还有一个博客和微信公众号,他们的地址在上方,有需要的同学可以看看,博客是我早期开始写的,主要记录一些在开发过程中遇到的问题以及怎么解决的,旨在帮助可能遇到同样问题的同学快速解决问题。昨天在写博客的时候,恰巧看到自己的博客文章浏览量较多的竟然是一个关于SSM(Spring、SpringMVC、Mybatis)的入门级文章,可能跟现在越来越多的人学习编程有关。
作为一名后端开发,数据库是我们的日常工作中必备的技能之一。后端开发就有句话用来自嘲CURDER。所以数据库的相关知识也是在面试过程中必须会被问到的必问知识点了。以前我也写过一些关于数据库的文章,相关文章的连接将会放在文章的后面,这里就整理一些面试过程中数据库被问频率较高的一些知识点。
记得以前面试的时候,有个面试题就是让我说说cookie和session的区别。那时候只知道它们都是用来记录浏览器缓存的,然后一个是记录在服务器,一个是记录在客户端的,然后有效期、安全性也不一样等等。但是感觉有点像应试式的死记硬背,并没有完全理解为什么。所以今天又看到了这道面试题,就想着重新理解一下这里面的概念,并整理成文章,希望能够帮助到需要的人。
为什么要写这篇文章?前段时间公司新开发一个项目需要用的git,领导问我会不会使用git,我说不会,然后被领导狠狠的鄙视了一顿。的确现在很多公司都在使用git进行版本控制,如果你不会使用git甚至连git都不知道,那么在公司里的地位肯定是要受到大家的嘲讽的。所以我恶补了一遍git相关的知识,并且将相关的一些知识记录下来希望能帮助到跟我一样需要用到的人,以免也受到其他人的鄙视。
在平时的开发过程中,数据库是必须掌握的一项技能,只有熟练的掌握了数据库的相关知识才能大大的提高开发效率和代码质量。
注解和 xml 都是一种元数据,元数据即解释数据的数据,就是所谓配置。在传统的Spring开发中是使用.xml文件来对bean进行注入或者是配置aop、事物,但是这么做有两个缺点:
Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。
今天看到一个面试题是什么是原子操作及其实现,但是感觉自己记得并不是很清楚,所以想着写篇文章好好的整理一下关于原子操作的知识点。
有一个面试四连击的题目:接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?
forward()与redirect()是servlet的两种主要的跳转方式。forward又叫转发,redirect叫做重定向。
今天刷博客的时候看到一个面试题就是java中overload、override、overwrite的区别。然后看到那个人的博客写的好像跟自己想的不一样,难道是自己都忘了?然后又百度了下,发现看了三个人,三个人的答案还是有差别的。后来自己就参考一些权威的资料,加上自己Demo实验,总结了一下,现在记录下来。
在上一篇文章:别再说不知道什么是存储过程和存储函数了中简单的介绍了存储过程和存储函数以及其使用。其实存储过程是可以进行编程的,所以可以和其他的编程语言一样使用变量、表达式以及控制结构进行编程,从而实现一些复杂和有用的功能。
今天项目需要写个存储过程,长时间没有写存储过程有点生疏和忘记了,所以想着写一篇文章来总结下存储过程的一些相关知识,算是复习一下加深记忆。
触发器是与表有关的数据库对象,指的是在insert\update\delete操作之前或者之后,能够触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以使得应用在数据库端确保数据的完整性以及日志记录,数据校验等操作。
IntelliJ IDEA(简称 IDEA),是Java语言开发的集成环境,IDEA 在业界被公认为最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(Git、SVN、GitHub 等)、JUnit、CVS 整合、代码分析和创新的 GUI 设计等方面的功能都很优秀,也是目前使用最多最为广泛的开发工具之一了。我们公司使用的就是idea进行项目的开发,idea还有很多的配置,配置好了能够提高我们的开发效率,大大提高工作效率。这里就总结一下我的idea的详细配置,把自己的经验整理记录下来,当然,如果能够在此基础上帮助大家快速入门并掌握IDEA那就更好了
和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎就是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。