
JAVA
chmodzora
技术至上
展开
-
java 并发包脑图
原创 2020-03-15 20:30:36 · 292 阅读 · 0 评论 -
偏向锁、轻量级锁、重量级锁区别与联系
今天总结了锁升级(偏向锁、轻量级锁、重量级锁)和锁优化下面开始总结。其实这些内容都是JVM对锁进行的一些优化,为什么分开讲,原因是锁升级比较重要,也比较难。一、锁升级在1.6之前java中不存在只存在重量级锁,这种锁直接对接底层操作系统中的互斥量(mutex),这种同步成本非常高,包括操作系统调用引起的内核态与用户态之间的切换。线程阻塞造成的线程切换等。因此在jdk 1.6中将...转载 2020-02-29 17:24:29 · 573 阅读 · 0 评论 -
mac idea maven爆红 mavenproject无dependecies
基本解决方案网上一大堆基本步骤检查setting下meven版本、setting.xml位置及内容,.m2仓库配置结果弄了半天jar包是down下来了项目还是爆红,而且右边mavenproject没有dependencies和plugins弄了半天发现mac版本配置是在而之前一直只配了哎。。。太久没用mac了...原创 2020-02-12 21:21:41 · 1061 阅读 · 0 评论 -
java 枚举(Enum)的几种用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码转载 2017-11-15 14:47:15 · 286 阅读 · 0 评论 -
Java泛型详解
1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用转载 2017-11-15 18:05:00 · 197 阅读 · 0 评论 -
代码重构
重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中。在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用。或者你因为需求迭代与变更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加。此时,你要考虑重构了。 重构,...转载 2018-07-11 17:07:50 · 236 阅读 · 0 评论 -
静态代码块、构造代码块、构造函数以及Java类初始化顺序
阅读目录构造函数 构造代码块 静态代码块 Java类初始化顺序静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。回到顶部构造函数public HelloA(){//构造函数 }关于构造函数,以下几点要注意:1.对象一建立,就会调用...转载 2018-08-18 18:31:02 · 173 阅读 · 0 评论 -
Maven项目打包测试时如何跳过测试类(maven install测试类报错)
在maven项目打包发布时,如果测试类中有我们的测试代码,那么在执行install命令的时候有可能会出错!因为打包的时候maven默认会将测试用例一起编译,编译不通过就报错!可以通过以下两种方法可以在发布的时候跳过测试类! 1.在pom.xml文件中添加如下:<build> <plugins> <plugin>...转载 2018-08-21 16:36:07 · 2961 阅读 · 0 评论 -
单例模式的八种写法比较
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在...转载 2018-09-05 21:21:30 · 139 阅读 · 0 评论 -
java图片压缩
import java.awt.Image;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java...转载 2018-10-12 10:32:18 · 280 阅读 · 0 评论 -
oxygenxml.oxygen_18.1 生成KEY代码
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.security.KeyFactory; import java.security.NoSuchAlgo...转载 2018-10-31 10:43:46 · 644 阅读 · 0 评论 -
tomcat线程无法回收
http://www.cnblogs.com/zhanjindong/p/concurrent-and-tomcat-threads-updated.html之前工作一直会遇到线程激增然后一直无法回收的情况,这篇博客很好的解释了Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s。服务器性能很好,T...转载 2019-08-15 00:04:37 · 6452 阅读 · 1 评论 -
idea 上运行tomcat war包路径
以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - -后来我就查啊查 ,纠结啊纠结,然后大概知道是咋回事了:在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到${user.home}/.IntelliJIdea/system/to...转载 2019-09-19 10:57:49 · 2262 阅读 · 0 评论 -
maven报错有重复类
再重复类所在的pom文件中加入 org.slf4j slf4j-log4j12 qunar.tc qmq-dal org.slf4j slf4j-log4j12原创 2017-11-13 13:50:41 · 1033 阅读 · 0 评论 -
java中为什么要实现序列化,什么时候实现序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标转载 2017-10-31 09:04:50 · 13543 阅读 · 0 评论 -
进程间通信方式
进程间通讯方式以及各个方式的优缺点进程通信的含义进程是转入内存并准备执行的程序,每个程序都有私有的虚拟地址空间,由代码,数据以及它可利用的系统资源(如文件,管道)组成.多进程/多线程是windows操作系统的一个基本特征.Linux系统一般都统称为进程.由于不同的进程运行在各自不同的内存空间中,其中一个进程对于变量的修改另一方是无法感知的,因此,进程之间的消息传递不能通过变量或其他转载 2017-05-03 16:28:42 · 287 阅读 · 0 评论 -
为什么 Nginx 的性能要比 Apache 高很多?
为什么Nginx的性能要比Apache高很多? 这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。处理大量的连接的读写,Apache所采用的select网络I/O模型非常转载 2017-05-31 21:09:24 · 197 阅读 · 0 评论 -
java实现serializable接口的作用
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。Serialize 是什么?这是IO存储中的一个概念。计算机中所有的内容都是0或者1的数字。这些数字按顺序排列,便转载 2017-05-31 22:02:36 · 1511 阅读 · 0 评论 -
项目中遇到的问题
实习项目中,从svn中或git上download一个项目到本地经常会遇到不能编译的问题,首先最重要看jar包是否down下来的,查看buildpath中是否缺少jar包,一般项目都是用maven创建,更新maven 库中的jar包,有时因为网络原因jar包会加载不下来查看maven中的setting文件位置以及setting 文件内配置,仓库地址等。然后查看jdk版本,以及编码问题。原创 2017-06-28 22:34:00 · 195 阅读 · 0 评论 -
jvm工作原理
一、Java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main转载 2017-06-25 19:38:46 · 258 阅读 · 0 评论 -
浅谈hadoop工作原理
Hadoop 是一个开源的可运行于大规模集群上的分布式并行编程框架,由于分布式存储对于分布式编程来说是必不可少的,这个框架中还包含了一个分布式文件系统 HDFS( Hadoop Distributed File System )。也许到目前为止,Hadoop 还不是那么广为人知,其最新的版本号也仅仅是 0.16,距离 1.0 似乎都还有很长的一段距离,但提及 Hadoop 一脉相承的另外两个开源项转载 2017-06-26 22:44:30 · 9642 阅读 · 0 评论 -
拼多多笔试
数组中最大的三个数乘积public class Main { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int n1 = sc.nextInt(); int[] arrH = ne原创 2017-08-01 22:03:51 · 1573 阅读 · 0 评论 -
IDEA快捷键
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可转载 2017-08-09 10:11:55 · 174 阅读 · 0 评论 -
Date、String、Calendar类型之间的转化
Date、String、Calendar类型之间的转化 1.Calendar 转化 String //获取当前时间的具体情况,如年,月,日,week,date,分,秒等 Calendar calendat = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat转载 2017-07-28 11:29:05 · 175 阅读 · 0 评论 -
多线程样例
在转Java的开发过程中,为了提高程序性能,经常会有多线程并行执行的需求,我写了下面的demo程序供大家参考使用,如有更好的实现方案欢迎讨论 public class MyThreadTest { public static void main(String[] args) throws InterruptedException { final L原创 2017-09-05 11:00:22 · 206 阅读 · 0 评论 -
kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafk转载 2017-09-24 21:07:53 · 290 阅读 · 0 评论 -
git push 遇到missing change id的问题
完整的错误日志如下:[java] view plain copy"font-size:14px;">Total 11 (delta 6), reused 0 (delta 0) remote: Resolving deltas: 100% (6/6) remote: Processing changes: refs: 1, don原创 2017-11-07 10:47:45 · 1879 阅读 · 0 评论 -
“轻量级”与“重量级”
事实上“轻量级”与“重量级”并没有确切的定义。轻重量级之分应当考虑如下几个方面: 加载的资源Spring相对于EJB是轻量级的,但这就好像说大象比鲸轻。如果你想要运行一个Java EE应用程序,你不能够简单地创建一个应用并直接运行它本身。需要一个JavaEE服务器来运行应用,例如Glassfish,WebLogic或WebSphere。多数应用服务器都是非常巨大并且转载 2017-10-22 22:23:16 · 1135 阅读 · 0 评论 -
java设计模式中单例模式
单例模式是JAVA设计模式中的一种,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。显然单例模式的要点有三个:一、某个类只能有一个实例;二、它必须自行创建这个实例;三、它必须自行向整个系统提供这个实例单例作用:第一、控制资源的使用,通过线程同步来控制资原创 2017-04-20 12:14:06 · 293 阅读 · 0 评论