Java开发知识图

目录


前端

页面

样式

脚本

后端

前后端分离

数据结构与算法

设计模式

WEB服务器

序列化/反序列化

数据库连接池

对象池

Bean复制

关系数据库

NoSql

服务器

缓存

缓存技术

消息队列

日志采集

监控

调度任务

项目管理

项目构建

项目版本管理

持续集成

代码质量管理

缺陷跟踪服务

容器化

虚拟化

认证

SSO

分布式

集群

大数据

云计算

AI

 

前端


页面

Html

Jsp

JSF

Angularjs

thymeleaf

 

样式

CSS

Bootstrap

 

脚本

JavaScript

jQuery

VUE

 

后端


网络编程

多线程

并发编程

JDK

JVM

lombok 简化代码编写

jmockdata 对象的实例化并随机初始化对象的数据

Podam Pojo填充随机值利器

ansible 运维自动化

Swagger 是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。

Spring Boot

Spring Cloud

 

前后端分离


vue+mockjs 模拟数据,实现前后端分离开发

RAP2模拟假数据实现前后端分离

 

数据结构与算法


 

设计模式


 

WEB服务器


Tomcat

 

序列化/反序列化


JDK

 

数据库连接池


dbcp
c3po
druid
hikari

 

对象池


common-pool

 

Bean复制


BeanUtils

 

关系数据库


Mysql

Oracle

 

NoSql


MongoDB

 

服务器


Linux

Windows Server

 

缓存


Memcache

EHCache

Redis

 

缓存技术


Java缓存技术

 

消息队列


RabbitMQ
ActiveMQ
RocketMQ
Kafka

 

日志采集


ELK

 

监控


metrics

prometheus

ELK

 

调度任务


Quartz

 

项目管理

项目构建

Maven

 

项目版本管理

SVN

GIT

 

持续集成

Jenkins

 

代码质量管理

Sonar

 

 

缺陷跟踪服务

JIRA

 

容器化


Docker

 

虚拟化


 

认证


Oauth2

 

SSO


CAS

 

分布式


 

集群


 

大数据


 

云计算


 

AI


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ImageComparerUI——基于Java语言实现的相似像识别,基于直方比较算法。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; public class ImageComparerUI extends JComponent implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private JButton browseBtn; private JButton histogramBtn; private JButton compareBtn; private Dimension mySize; // image operator private MediaTracker tracker; private BufferedImage sourceImage; private BufferedImage candidateImage; private double simility; // command constants public final static String BROWSE_CMD = "Browse..."; public final static String HISTOGRAM_CMD = "Histogram Bins"; public final static String COMPARE_CMD = "Compare Result"; public ImageComparerUI() { JPanel btnPanel = new JPanel(); btnPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); browseBtn = new JButton("Browse..."); histogramBtn = new JButton("Histogram Bins"); compareBtn = new JButton("Compare Result"); // buttons btnPanel.add(browseBtn); btnPanel.add(histogramBtn); btnPanel.add(compareBtn); // setup listener... browseBtn.addActionListener(this); histogramBtn.addActionListener(this); compareBtn.addActionListener(this); mySize = new Dimension(620, 500); JFrame demoUI = new JFrame("Similiar Image Finder"); demoUI.getContentPane().setLayout(new BorderLayout()); demoUI.getContentPane().add(this, BorderLayout.CENTER); demoUI.getContentPane().add(btnPanel, BorderLayout.SOUTH); demoUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); demoUI.pack(); demoUI.setVisible(true); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; if(sourceImage != null) { Image scaledImage = sourceImage.getScaledInstance(300, 300, Image.SCALE_FAST); g2.drawImage(scaledImage, 0, 0, 300, 300, null); } if(candidateImage != null) { Image scaledImage = candidateImage.getScaledInstance(300, 330, Image.SCALE_FAST); g2.drawImage(scaledImage, 310, 0, 300, 300, null); } // display compare result info here Font myFont = new Font("Serif", Font.BOLD, 16); g2.setFont(myFont); g2.setPaint(Color.RED); g2.drawString("The degree of similarity : " + simility, 50, 350); } public void actionPerformed(ActionEvent e) { if(BROWSE_CMD.equals(e.getActionCommand())) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); BufferedImage bImage = null; if(f == null) return; try { bImage = ImageIO.read(f); } catch (IOException e1) { e1.printStackTrace(); } tracker = new MediaTracker(this); tracker.addImage(bImage, 1); // blocked 10 seconds to load the image data try { if (!tracker.waitForID(1, 10000)) { System.out.println("Load error."); System.exit(1); }// end if } catch (InterruptedException ine) { ine.printStackTrace(); System.exit(1); } // end catch if(sourceImage == null) { sourceImage = bImage; }else if(candidateImage == null) { candidateImage = bImage; } else { sourceImage = null; candidateImage = null; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值