Java
文章平均质量分 79
晓宇码匠
尽信书,不如无书
展开
-
Java 性能调优工具
CPU使用率工具: vmstat检查应用性能时,应该首先审查CPU时间。代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率。在试图深入优化应用前,应该先弄清楚为何CPU使用率低。磁盘使用率工具: iostat对于所有应用来说,监控磁盘使用率非常重要。即便不直接写磁盘的应用,系统交换仍会影响它们的性能。写入磁盘的应用遇到瓶颈,是因为写入数据的效率不高(吞吐率太低),或者是...原创 2020-02-28 17:21:43 · 380 阅读 · 0 评论 -
初识jvm运行java代码
Jvm指令集个人理解jvm结构java代码javap -c 反编译代码 指令集,其实就是一系列指令的集合。例如我们需要给一个局部变量赋予1这个值,即这个动作:int a = 1; 在我们看来,这很简单,但对于机器来说需要很多个动作。所以Java虚拟机指令集就是将这些常用的动作集中起来,定义成一系列指令,方便我么能使用。Java语言和虚拟机规范:https://do...原创 2020-02-28 12:35:26 · 278 阅读 · 0 评论 -
Spring Cloud 与 Docker 实战
类别知识微服务开发框架 SpringCloud1.单体应用和微服务架构应用的区别 2.微服务架构的技术选型开始使用 Spring Cloud 实战微服务1.分布式系统的大致组成 2.服务提供者和消费者的关系 3.通过Maven引用SpringCloud依赖 4.通过SpringCloud编写微服务整合 Spring Boot Actuator1.指标监控是什么...原创 2019-12-27 21:21:41 · 254 阅读 · 0 评论 -
list转为map
常用方式代码如下:public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));}收集成实体本身map代码如下:...原创 2019-12-10 16:31:19 · 614 阅读 · 2 评论 -
java8 Lambda表达式
1.替代匿名内部类毫无疑问,lambda表达式用得最多的场合就是替代匿名内部类,而实现Runnable接口是匿名内部类的经典例子。lambda表达式的功能相当强大,用()->就可以代替整个匿名内部类!请看代码:如果使用匿名内部类: @Test public void oldRunable() { new Thread(new Runnable() { ...原创 2019-11-03 22:04:47 · 164 阅读 · 0 评论 -
Java程序设计(高级及专题)- JDBC
核心APIJDBC接口核心的API java.sql.* 和 javax.sql.* |- Driver接口: 表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口。 |- connect(url, properties): 连接数据库的方法。 url: 连接数据库的URL...原创 2019-06-08 21:05:50 · 287 阅读 · 0 评论 -
Java程序设计(高级及专题)- 泛型/容器(集合框架)
通俗的说,集合就是一个存放数据的容器,准确的说,就是放数据对象引用的容器数组和集合都是容器,有何不同?数组长度固定,集合长度可变数组只能存放相同类型的数据,集合可以存放不同类型的数据数组可存放简单数据类型和类类型的数据,集合只能存放类类型数据JAVA集合框架:java中用来表示集合,和操作集合的所有类库的统称JAVA中的集合从大方向分有两种:Collection 集合,Map 集...原创 2019-06-08 20:29:10 · 374 阅读 · 0 评论 -
Java性能优化的48条+七个案例
Java性能优化的50条尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。尽量避免随意使用静态变量...原创 2019-06-08 19:05:20 · 1924 阅读 · 0 评论 -
Java加密解密介绍
package com.util;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.Mac;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import com.sun.org.a...原创 2019-06-18 20:58:13 · 1394 阅读 · 0 评论 -
Java程序设计(高级及专题)- 多线程
概述多线程是什么?为什么要用多线程? 介绍多线程之前要介绍线程,介绍线程则离不开进程。 进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元; 线程:就是进程中的一个独立控制单元,线程在控制着进程的执行。一个进程中至少有一个进程。多线程:一个进程中不只有一个线程。为什么要用多线程:①、为了更好的利用cpu的资源,如果只有...原创 2019-06-07 21:54:22 · 299 阅读 · 0 评论 -
Java程序设计(高级及专题)- 类的加载和反射
加载器类加载器就是可以从其作用来理解,其功能就是将classpath目录下.class文件,加载到内存中来进行一些处理,处理完的结果就是一些字节码.那是谁把这些class类加载到内存中来的呢?就是类加载器。JVM中默认的类加载器java虚拟机中可以安装多个类加载器,系统默认三个主要的类加载器,每个类加载器负责加载不同位置的类:BootStrap,ExtClassLoader,AppClas...原创 2019-05-29 23:19:56 · 241 阅读 · 0 评论 -
Java程序设计(高级及专题)- 网络编程
概念1.协议的概念:通信双方事先约定好的通信规则2.七层网络通信协议;应用成,表示层,会话层,传输层,网络层,数据链路层3.TCP/IP协议:点对点通信,三层握手,安全有保证4.UDP协议:广播协议,不保证数据安全但很高效5.重要APl:InetAddress类,URl类,ServerSocked类,DatagramSocket类6.网络编程主要有两部分:一是获取管理socket连接...原创 2019-06-06 22:48:58 · 321 阅读 · 0 评论 -
Java程序设计(高级及专题)- 异常机制
在程序运行过程中出现错误,导致程序出现非预期场景。异常处理可以保证出现错误后,控制接下来的程序流程,是选择定位错误信息,还是抛出异常或捕获异常、还是避免程序非正常退出,都取决于我们。Java的异常体系结构Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类,两大子类分别是Error和Exception。这些异常类可以分为三种类型:系统错误、异常和运行时异常。系统错...原创 2019-06-01 20:27:18 · 192 阅读 · 0 评论 -
JAVA中DBUtils的QueryRunner类实现增删改查详解
一.QueryRunner类实现增删改连接池代码:JdbcUtil.javapackage com.wb.util;/** * c3p0,dbcp,druid */import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.SQLExceptio...原创 2019-06-09 12:24:08 · 968 阅读 · 0 评论 -
Java代码-Date转换
与字符串转换 //Date 转 String public static String getStringDate(Date date) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); St...原创 2019-05-21 21:50:46 · 278 阅读 · 0 评论 -
Java中常见的对象类型简述(DO、BO、DTO、VO、AO、PO)
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Doma...原创 2019-08-12 13:21:37 · 1420 阅读 · 0 评论 -
Java开发手册之模块命名
工具类util:是通用业务无关可供其他程序使用的,可以用在其他系统中使用,类似apache commons这类,比如开发了个DateUtil,任何一个同语言、无兼容性问题的工程都可以引用一下。tool:是通用的部分业务相关的,因此不能用在其他系统体系中,比如校验用户身份信息的UserTool,可在资源处理、需要鉴权的部分使用,但在其他系统中不能直接移植。service:是处理单一业务的,Us...原创 2019-08-15 11:50:23 · 3138 阅读 · 0 评论 -
Java并发体系
# Java并发体系Java内存模型(JMM)线程通信机制内存共享Java采用消息传递内存模型重排序为了程序的性能,处理器、编译器都会对程序进行重排序处理条件在单线程环境下不能改变程序运行的结果存在数据依赖关系的不允许重排序问题重排序在多线程环境下可能会导致数据不安全顺序一致性多线程环境下的理论参考模型为程序提供了极强...原创 2019-07-23 09:45:34 · 315 阅读 · 0 评论 -
Java工程师定位
初级水平(认知理解技术为主):项目实战方面:1.能够熟练使用三大框架或者springboot进行基本的业务开发,熟悉MVC架构2.能写工作流,熟悉常用的设计模式java部分:1.能熟练应用封装,继承,多态这三大特性。能熟练使用list,set等collection接口,及map接口。2.对java的较为复杂的技术能够灵活使用如:多线程,反射,io流,网络编程和数据库编程3.sql能够...原创 2019-07-13 22:55:20 · 637 阅读 · 0 评论 -
Java框架介绍
1、MongoDB–较受欢迎的,跨平台的,面向文档的数据库。MongoDB是 个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能较丰富,较像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进 步拓展。 MongoDB的核心优势就是灵活的文档模型、高可用...原创 2019-07-13 22:08:35 · 332 阅读 · 0 评论 -
Java实现数据统计的常用算法
求和、平均值、众数、中位数、中列数、四分位数、极差、四分位数、截断均值、方差、绝对平均差(AAD)、中位数绝对偏差、标准差 的数学方法package cn.javacodes.utils;import java.util.Arrays;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/...原创 2019-07-03 11:21:51 · 13165 阅读 · 2 评论 -
Java的类加载机制
java.lang.ClassLoader类介绍java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个Java 类,即 java.lang.Class类的一个实例。ClassLoader提供了一系列的方法,比较重要的方法如:JVM中类加载器的树状层次结构引导类加载器(bootstrap class ...原创 2019-06-15 12:34:15 · 117 阅读 · 0 评论 -
Java程序设计(高级及专题)- 正则表达式
原文地址:https://www.cnblogs.com/yw0219/p/8047938.html正则表达式(Java版整理)基础元字符代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字...原创 2019-06-05 23:08:00 · 532 阅读 · 0 评论 -
Java程序设计(面向对象)- 设计原理
单一职责一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。简单通俗的来说:一个类只负责一项职责。问题:比如一个类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发...原创 2019-05-28 21:58:17 · 3520 阅读 · 0 评论 -
Java程序设计(基础)- 字符串
创建String s1="hello"与String s2=new String(“hello”)的区别:String类在内存中管理一个字符串常量池(常量池的一部分),池中所有相同的字符串常量被合并,只占用一个空间。String s1=”hello”,先看池中有没有hello,没有就创建一个hello字符串对象。即采用此方法创建0或者1个对象。String s2=new String(“...原创 2019-05-24 21:39:13 · 614 阅读 · 0 评论 -
动态代理
个人理解:代理类在程序运行时创建的代理方式被成为动态代理。 我们上面静态代理的例子中,代理类(studentProxy)是自己定义好的,在程序运行之前就已经编译完成。然而动态代理,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类中的方法。接口类pa...原创 2019-05-10 21:06:30 · 112 阅读 · 0 评论 -
Java程序设计(基础)- 数据类型
数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。基本数据...原创 2019-05-20 21:35:47 · 400 阅读 · 0 评论 -
反射和动态实例化
反射个人理解:在我们面向对象编程时,有时候需要我们对类这个对象进行操作,需要识别对象和类的信息,所以Java为我们提供了两种方式:第一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。第一种方式、Class类package com.gaoji.reflex;import org.apache.tomcat.jni....原创 2019-05-10 19:51:17 · 473 阅读 · 0 评论 -
Java全栈工程师知识体系介绍
Java全栈工程师知识体系介绍Java全栈工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。那么想要成为一名合格的Java全栈工程师需要掌握哪些知识呢?今天就在这里总结一下知识体系: 首先Java全栈工程师首先必须精通Java,那么作为一个零基础的人,要想成为Java全栈工程师第一步就是学好...原创 2019-01-30 09:03:57 · 915 阅读 · 0 评论 -
在java中jar与war和pom的区别
在java中jar与war和pom的区别pom:打出来可以作为其他项目的maven依赖,在工程A中添加工程B的pom,A就可以使用B中的类。用在父级工程或聚合工程中。用来做jar包的版本控制。jar包:通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包。war包:是做好一个web网站后,打成war包部署到服务器。目的是节省资源,提...原创 2019-01-30 09:04:23 · 849 阅读 · 0 评论 -
java web 学习成长路线
Java web开发是什么? Java web开发,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。一:入门阶段学习目标:Java程序员1: ...原创 2019-02-25 18:43:53 · 282 阅读 · 0 评论 -
Java程序设计(高级及专题)- IO流与序列化
今天我们讲讲I/O流与序列化的问题?个人理解:在我们在编程开发的时候,往往会涉及到文件的读取与写入,而java为我们提供的I/O流就是用来解决这个问题的。我们在读取和写入文件的时候,都会涉及到序列化的东西,谈到序列化就离不开编码格式,我们的windows是用GBK来编码的而我们的Java通常是用UTF-8来编码的,所以我们有时候开发会遇到乱码的问题,此时我们不要慌,问题总是会能解决的,大不了从...原创 2019-05-09 21:26:16 · 315 阅读 · 0 评论 -
Java之单例模式
单例模式的优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理• 常见的五种单例模式实现方式:– 主要:• 饿汉式(线程安全,调用效率高...原创 2019-05-19 20:10:36 · 161 阅读 · 0 评论 -
Java程序设计(基础)- 流程控制
顺序结构、循环结构、分支结构、复合语句原创 2019-05-21 21:10:03 · 1160 阅读 · 0 评论 -
Java程序设计(基础)- 概述
一、Java特点1.简单Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。Ja...原创 2019-05-16 20:11:34 · 3752 阅读 · 0 评论 -
Java之Java特点
1.简单Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。Java提供了丰富的类库...原创 2019-05-16 20:16:15 · 830 阅读 · 0 评论 -
Java程序设计(高级及专题)- GUI
AWTAWT(Abstract Window Toolkit)包括了很多类的接口,用于Java Application的GUI(Graphics User Interface图形用户界面)编程。GUI的各种元素(如:窗口,按钮,文本框)由Java类实现。使用AWT所涉及的类一般在 java.awt 包及其子包中。Container 和 Component 是AWT中的两个和心态。...原创 2019-05-31 16:53:22 · 22717 阅读 · 0 评论 -
Java程序设计(基础)- 方法
方法:完成特定功能的代码。方法的注意事项:A:方法不调用不执行B:方法与方法是平级关系,不能嵌套定义C:方法定义的时候参数之间用逗号隔开D:方法调用的时候不用在传递数据类型E:如果方法有明确的返回值,一定要有return带回一个值 修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2…) { 函数体; return 返回值; ...原创 2019-05-23 22:25:06 · 639 阅读 · 0 评论 -
Java程序设计(高级及专题)- XML
基础及相关概念XML(EXtensible Markup Language),可扩展标记语言。特点:XML与操作系统、编程语言的开发平台都无关【通用的数据交换格式】实现不同系统之间的数据交换【包括系统的配置文件】是一种标记语言,没有固定的标记,可以随便发明也可以自己创建【整个XML是一种树形文件】是其他技术的基础技术作用:数据交互配置应用程序和网站Ajax基石XM...原创 2019-05-30 21:26:49 · 280 阅读 · 0 评论 -
Java程序设计(面向对象)- 相关内容
访问修饰符、抽象类、接口、内部类原创 2019-05-27 23:20:14 · 230 阅读 · 0 评论