几年前 Reddit 上有个关于招聘的笑话: 面试官问:你用过 Python 或者 Django 吗? 答:我三周前去过动物园,这个算吗? 面试官:你被雇佣了。 一周后,这位应聘者用 Django 给他们的产品写了一个在线论坛。 英文的玩笑,用中文看有点不太容易懂。它的意思就...
UI前端
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁。而锁本身又会带来一些问题和开销。Immutable Object模式使得各位同行可以在不使用锁的情况下,既保证共享变量访问的线程安全,又能避免引入锁可能带来的问题和开销。 Immutab...
ITJS的这篇文章主要介绍了Java的图形设计以及多媒体处理,源码作者也做了详细的注释,对于初学者应该不难。详细请看下文。 同心圆效果图:/** *程序要求:新建一个600*600像素的应用程序窗口,并在窗口中绘制5个不同颜色的同心圆, *所有圆心都是屏幕的中心...
系列目录: Java内存模型深度解析:基础部分 Java内存模型深度解析:重排序 Java内存模型深度解析:顺序一致性 Java内存模型深度解析:volatile Java内存模型深度解析:锁 Java内存模型深度解析:final Java内存模型深度解析:总结 volatile的特性 当各位同...
EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。 下图是 EhCache 在应用程序中的位置: 图 1. EhCache 应用架构图EhCache 的主要特性有: 快速; 简单; 多种缓存策略; 缓存...
关于“Java 8为Java带来了函数式编程”已经有了很多讨论,但这句话的真正意义是什么? ITJS的这篇文章将讨论函数式,它对一种语言或编程方式意味着什么。在回答“Java 8的函数式编程怎么样”之前,各位同行先看看Java的演变,特别是它的类型系统,各位同行将...
日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。对于开 发人员来说,在程序中使用日志API记录日志并不复杂,不过遵循一些最佳实践可以更好的利用日志。ITJS的这篇文章介...
试可以帮助识别和解决应用程序缺陷,在ITJS的这篇文章中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,各位同行会把重点放在运行时上面。 在开始之前,推荐大家去看看Eclipse sho...
在处理大文件时,如果利用普通的FileInputStream 或者FileOutputStream 抑或RandomAccessFile 来进行频繁的读写操作,都将导致进程因频繁读写外存而降低速度.如下为一个对比实验。 package test; import java.io.BufferedInputStream;import java.io.FileInpu...
ITJS的这篇文章主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。 一、java虚拟机内存原型 寄存器:各位同行在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静...
这是一篇入门级文章,高手请略过。 在这篇文章中各位同行将学习如何用 Java 对图像进行剪裁并将剪裁出来的部分单独保存到文件中。 各位同行将通过以下步骤来学习: 输入图像,指定要处理的图像路径 允许用户拖放要剪裁的部分 选择后使用 Robot 类来确定剪...
JasperReport Report是一款强大的免费报表引擎,Spring MVC提供了对其的支持,由于JasperReport可以使用多种数据员,ITJS的这篇文章以javabean为数据源演示。 下载地址: spring-mvc-demo_v4.zip 提取码: SLeLPNcO 注意,本教程在写作的过程中maven 下载itex...
Java平台最初的目标是为嵌入式设备提供一个软件环境。然而,历史的怪圈却让Java成为了企业软件开发的首选语言。过去,Java的客户端应用所受到的关注比利润丰厚的服务器端市场要少得多。不过,现在Java平台已经拥有了强大的客户端组件——JavaFX,可用于开发桌...
产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。 有时致命问题发生后,Java应用不会死掉,还能继续运行; 但有时致命问题发生,Java进程会死掉; 为了能够保留Java应用发生致命错误前的运行状态...
Java虚拟机内存分为五个区域:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆是java虚拟机共享的内存区域,虚拟机栈,本地方法栈,程序计数器是线程私有的。 程序计数器(Program Counter Register) 当前线程执行字节码的行号指示器。通过改...
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只...
对于Java初学者来说,很容易将Java中的方法覆盖、方法重载以及变量覆盖互相混淆,ITJS的这篇文章主要来对Java中的方法覆盖和方法重载进行详细地却分,并且用具体的代码来进行解释。 首先,各位同行看看关于重载,和覆盖(重写)的简明定义: 方法重载:如果...
Java 8引入了全新的Stream API。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。 Stream API引入的目的在于弥补Java函数式编程的缺陷。对于很多支持函数式编程的语言,map()、reduce()基本上都内置到语言的标准库中了,不...
Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和缺救蒜级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例。 zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台...
一、一级缓存二级缓存的概念解释 (1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个 session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再...
尽管有Java IDE和大量的图形工具能是你更容易地去查看和处理Java归档文件(JAR,WAR,和EAR)。但有时候本人想使用jar的命令行命令去完成这些操作。当本人不得不做些重复的任务或者这些任务只是脚本的一部分时,使用命令行命令特别适合。在这篇文章里,本人着重使...
文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 选择top记录时,尽量为order子句的字段建立索引 查看SQL语句CPU高的语句 通过建立相关...
前言 上几篇文章我们介绍了如何查看查询计划、常用运算符的介绍、并行运算的方式,有兴趣的可以点击查看。 该文章内容将分析在SQL Server中,如何利用先有索引项进行查询性能优化,通过了解这些索引项的应用方式可以指导我们如何建立索引、调整我们的查询语...
背景 在如今的软件当中,缓存是解决很多问题的一个关键概念。你的应用可能会进行CPU密集型运算。你当然不想让这些运算一边又一边的重复执行,相反,你可以只执行一次, 把这个结果放在内存中作为缓存。有时系统的瓶颈在I/O操作上,比如你不想重复的查询数据库...
该文章内容文章的主要目标是介绍如何优化MySQL数据库,通过定期分析表和检查表、定期优化表以及一些常用SQL语句的优化手段,可以帮助你学会在MySQL开发中编写更为高效的SQL。 1、定期分析表和检查表 分析表的语法如下: ANALYZE [LOCAL | NO_WRITE_TO_BINLOG]...