MacOS环境使用wireshark抓包

安装
brew install wireshark —with-qt5
启动应用
#如果不是管理员身份启动,则获取不到网卡信息。
sudo wireshark-qt
IP过滤
#来源IP
ip.src == 
#目标IP
ip.dst ==
#例如过滤来源192.168.1.10的请求
ip.src==192.168.1.10

在 github 放一个spring-boot-jpa DEMO

在 github 放一个spring-boot-jpa DEMO。

Spring Boot 的出现极大提高了生产效率, 尤其是做一些规模不太大的项目,它非常好用了,你不必再为繁杂的配置文件而烦恼,只需在 pom 里增加想依赖的组件就可以了,然后定义 Entity,声明 Dao,在 Service 层包装一下业务, controller 里去做 WEB 页面展示的准备工作就好了。

这个DEMO主要演示基于 spring boot 的项目开发,如何使用 jpa 对数据库 CRUD 操作,如何用 freemarker 展示页面。

项目地址:spring-boot-jpa DEMO

Java : Unsupported major.minor version 51.0解决方法

在使用 intellij idea 插件 QAPlug - FindBugs 时报错:

======Cannot Load Project======
Cannot load project:
com.intellij.ide.plugins.PluginMananger:$StartupAboortedException:
com.intellij.diagnostic.PluginException:
com/soldevelo/findbugs/FindBugsComponent:Unsupported major.minor version 51.0[Plugin:QAPlug - FindBugs][Plugin:QAPlug - FindBugs]

经过一番搜索,找到如下 JDK 版本对应关系 :
J2SE 8 = 52 (0x34 hex)
J2SE 7 = 51 (0x33 hex)
J2SE 6.0 = 50 (0x32 hex)
J2SE 5.0 = 49 (0x31 hex)
JDK 1.4 = 48 (0x30 hex)
JDK 1.3 = 47 (0x2F hex)
JDK 1.2 = 46 (0x2E hex)
JDK 1.1 = 45 (0x2D hex)

Mac OS管理多个JDK版本

作为一个Java程序员,同一台工作机上可能会安装多个Java版本,工作时可能是用1.6版本,而工作之余1.7或1.8版本用于学习一下,版本间的手动切换也是麻烦事儿。有次同事问在Mac下是如何管理多个版本的JDK, 当时没有答案,直到偶然见发现jEnv。jEnv的安装、使用都很简单。

什么是jEnv?
jEnv 是一个帮助你管理 $JAVA_HOME 环境变量的命令行工具。
安装
brew install jenv
 echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
 echo 'eval "$(jenv init -)"' >> ~/.zshrc

50道Java线程面试题

1) 什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。了解更多详细信息

2) 线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。更多详细信息

3) 如何在Java中实现线程?

在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。更多详细信息.