标签:基础教程

IntelliJ IDEA如何创建Java Swing项目

最近又要开发C/S项目,其实java web开发搞久了真不想开发桌面应用程序,没办法,先创建个Java Swing项目练下手,下面记录下IntelliJ IDEA如何创建Java Swing项目,并进行开发。 第1步:确保启用UI Designer UI Designer是一个idea插件,可以帮助我们通过拖拽控件的方式快速开发swing界面,因此我们首先要……

Java函数式编程入门学习举例与优点详解

在JDK1.8之后,Java引入了函数式编程,可以大大简化代码,提高开发效率,下面针对Java函数式编程入门学习进行一些举例,并详解一下它的优点。 一、什么是函数式编程 我们最常用的面向对象编程(Java)属于命令式编程(Imperative Programming)这种编程范式。常见的编程范式还有逻辑式编程(Logic Programming),函数式编程……

Java并发编程-内存模型相关基础概念

潘老师在网上看到一篇Java并发编程有关内存模型相关基础概念的文章,摘录了一部分有助于理解类似i++在多线程操作时是不安全的底层逻辑,以及在并发编程中涉及的重要的3个概念:原子性、可见性和有序性,扩展了解下happens-before原则。 一、内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据……

Linux系统执行shell脚本提示^M报错问题解决

最近在Liunx系统执行在windows上编写的shell脚本时提示执行失败,具体提示如下: -bash: ./install-server.sh: /bin/bash^M: bad interpreter: No such file or directory 遇到这类问题,解决方案也很简单,下面潘老师来说下该如何去解决。 问题原因 在DOS/Windows……

如何手动获取spring bean对象?

最近在开发的时候,由于经常用到多线程,在线程中无法通过@Autowired方式注解注入ApplicationContext中的bean,因为线程类一般不会交给spring管理,必须要使用手工获取spring bean对象的方法才能较好得实现相应的功能。 那怎么实现手动获取springApplicationContext中的bean对象呢? 方法1:通过实现S……

Java创建线程池的几种方式具体实现

在讲解Java创建线程池的几种方式之前,潘老师先带大家了解一些关于线程池的概念和原理。 一、Java线程池是什么 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,并且线程池中的线程都是后台线程。 二、Java线程池作用意义 第1:降低资源消耗。通过重复利用机制已降低线程创建和销毁造成的消耗。 第2:提高响应速度。当任……

Java执行Shell命令和Shell脚本

Java开发的项目,部署到Linux系统后,偶尔会使用Java调用Shell命令和脚本,比如修改了某些参数配置需要重启tomcat服务器或者重启系统等等,虽然使用频率不高,但是我们还是有必要了解下如何使用Java执行Shell命令和Shell脚本。JDK给我们提拱了两种实现方案,一种是Runtime.getRuntime().exec() API方法,另一种……

什么是Java热更新?

昨晚在闲鱼上有个做游戏开发的咨询实现Java热更新,无奈潘老师之前没做过,只能直言“不做”,别问为啥,问就是“我也不会” 真是书到用时方恨少啊,于是立马就来研究下什么是Java热更新? 一句话说明白什么是Java热更新? 在不重启服务器的前提下对项目代码实现局部更新与替换,称为热更新 Java热更新这个需求主要来源于以下两个场景: (1)线上代码出现bu……

Java Socket编程例子并应用到Java Web项目

最近Java潘老师在协同底层项目开发web端需要使用到socket与其通信,实现消息传输,于是重拾那遗忘久矣的Java Socket网络编程技术。还记得当时学习Java Socket编程例子的时候是写了一个在线聊天室,有单聊有群聊,玩的的不亦乐乎,真正能体会到学Java技术原来这么有意思,不过今天潘老师就总结下最基础入门的Java Socket编程案例,并写……

ForkJoinPool线程池的用法与使用场景

一、ForkJoinPool是什么? ForkJoinPool 是 JDK1.7 开始提供的线程池。为了解决 CPU 负载不均衡的问题,如某个较大的任务,被一个线程去执行,而其他线程处于空闲状态。 其实本质上就是为了尽可能地去让每个cpu高效率的工作,以提高计算效率,但千万别盲目使用ForkJoinPool,认为其效率一定比ThreadPoolExecuto……

Linux系统如何安装jdk

1、去ORACLE官网下载Linux系统的JDK,这里我们使用版本为jdk-8u111-linux-x64.tar.gz ,点击直达官网下载 2、将本地下载好的文件上传到系统中,这里使用XShell上传。在XShell中输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行如下命令进行安装(sudo 表示使用root权限)。 sudo yum ……

用M2_HOME还是MAVEN_HOME配置环境变量,有什么区别?

Maven是我们Java开发几乎必备的项目构建工具,而maven的环境变量配置对我们而言也极其重要,有些同学在网上搜索配置时可能会发现有两种配置方式,一种新建环境变量名为MAVEN_HOME,一种名为M2_HOME,那我们到底使用哪一种呢? 其实很简单,在Maven 1.x版本时,我们使用的是MAVEN_HOME,在Maven 2.x版本时我们需要使用M2_……