【JAVA成长记】
文章平均质量分 84
keep!health
不以物喜,不以己悲!
展开
-
JVM(1):Java 类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主转载 2017-09-07 17:24:32 · 365 阅读 · 1 评论 -
JVM方法调用的那些事
前言Java具备三种特性:封装、继承、多态。Java文件在编译过程中不会进行传统编译的连接步骤,方法调用的目标方法以符号引用的方式存储在Class文件中,这种多态特性给Java带来了更灵活的扩展能力,但也使得方法调用变得相对复杂,需要在类加载期间,甚至到运行期间才能确定目标方法的直接引用。方法调用所有方法调用的目标方法在Class文件里面都是常量池中的符号引用。在类加载转载 2017-09-07 16:21:19 · 397 阅读 · 1 评论 -
JVM内存结构分析
对于Java程序员来说,内存是由JVM自动管理的,所以一旦出现内存泄漏或溢出的问题,不了解JVM的内存结构和各个内存区域的工作职责,将对解决问题带来很大的麻烦,本文参照周志明的《深入理解Java虚拟机》,介绍JVM的内存结构,比较枯燥,但对知其然,不知所以然的编码人员来说还是有一定帮助的。 按照Java虚拟机规范的规定,JVM自动管理的内存将会包括以下几个运行时数据区域。原创 2017-09-05 10:53:51 · 409 阅读 · 1 评论 -
JVM调优总结(1):一栈、堆
数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引转载 2017-09-05 10:02:01 · 367 阅读 · 1 评论 -
深入理解Java中的final关键字
Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可转载 2017-09-04 20:20:26 · 268 阅读 · 0 评论 -
Mybatis-宏观学习
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了googlecode,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL本身,而不需要花费精力去处理例如注册原创 2017-08-25 15:55:53 · 450 阅读 · 10 评论 -
health2.0——获取微信信息
背景:继health1.0 软件投入使用时候,用户反映强烈,易用性还有很多的上升空间。不得不说微信已经融入大家的生活中,为了改善health2.0的易用性和微信合作志在必行。所以在没有经过张小龙同意的情况下,偷偷的进行了health2.0微信版的开发。 二话不说,先来张图了解宏观: 上代码: 接受微信发送的参数,本进行验证 package com.h原创 2017-08-12 10:06:52 · 1366 阅读 · 3 评论 -
JVM(2):JVM内存结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。先看一张图,这张图能很清晰的说明JVM内存结构布局。J转载 2017-09-07 17:31:17 · 257 阅读 · 0 评论 -
JVM(3):Java GC算法 垃圾收集器
GC算法 垃圾收集器概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这转载 2017-09-07 17:34:48 · 372 阅读 · 1 评论 -
spring cloud 学习(5) - config server
分布式环境下的统一配置框架,已经有不少了,比如百度的disconf,阿里的diamand。今天来看下spring cloud对应的解决方案:如上图,从架构上就可以看出与disconf之类的有很大不同,主要区别在于:配置的存储方式不同 disconf是把配置信息保存在mysql、zookeeper中,而spring cloud config是将配置保存在git/svn上 (即:配置当...转载 2018-11-08 18:14:36 · 389 阅读 · 0 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表 二、HashMap实...转载 2018-03-21 19:23:18 · 514 阅读 · 6 评论 -
sping 定时任务
1、创建定时任务 配置文件<?xml version="1.0" encoding="utf-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:task="http://原创 2018-03-09 15:55:03 · 377 阅读 · 1 评论 -
Jetty使用教程(一)——开始使用Jetty
一、Jetty简介1.1 什么是Jetty Jetty是一个提供HHTP服务器、HTTP客户端和javax.servlet容器的开源项目。 这个入门教程分为五个部分:第一部分部分重点介绍如何使用Jetty,它提供如下信息,如什么是Jetty,从哪可以下载它,怎么在像Maven一样的仓库中找到它。这一部分同样会提供启动Jetty和如何配置Jetty的转载 2017-11-05 16:54:40 · 9187 阅读 · 2 评论 -
Java 中的异常和处理详解
简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代转载 2017-09-20 23:27:37 · 352 阅读 · 1 评论 -
重新看待Jar包冲突问题及解决方案
Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致,可采用依赖排除、依赖管理等常规方式来尝试解决该问题,但这些方式真正能彻底解决该冲突问题吗?答案是否定的。笔者之所以将文章题目起为“重新看待”,是因为之前对于Jar包冲突问题的理解仅仅停留在前面所说的那些,直到在工作中遇到的一转载 2017-09-03 09:29:01 · 12629 阅读 · 4 评论 -
Java 垃圾回收算法
堆中存放着几乎所有的对象实例,垃圾收集器在堆堆进行回收前,首先要确定这些对象哪些还“活着”,哪些已经“死去”。方法有如下两种:(1)引用计数法 算法思想:为对象添加一个引用计数器,每当有一个地方引用该对象时,则该引用计数器值加1,;当引用失效时,则该引用计数器值减1;最后,计数器为0的对象就是不可能再被使用的,也即所谓的“死去”的对象。 Java中并没有使用这转载 2017-09-02 17:49:31 · 324 阅读 · 0 评论 -
Java开发牛人十大必备网站
以下是我收集的Java开发牛人必备的网站。这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题、面试问题等。质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好。接下来,我会跟大家分享我是如何使用这些网站学习和娱乐的。或许你会认为有些网站适合任何水平的开发者,但是我认为:对于Java开发牛人来说,网站的好坏取决于如何使用它们。1、StackoverflowStacko转载 2017-09-07 18:19:12 · 732 阅读 · 2 评论 -
Java-枚举应用总结
一、前言 在Java编程过程中,我们通常需要定义一些固定数量的常量,在jdk1.5以前,通常的做法是定义一个静态常量类,但自jdk1.5后,java引入了枚举(关键字enum,全称为 enumeration,值类型),在枚举中,我们可以把相关的常量分组到一个枚举类型里,枚举也比常量类有更多灵活的用法,使用枚举,可以有效的提高代码的整洁性、可读性、可维护性等等,这里简单总结一下常用的枚举原创 2017-07-31 18:06:00 · 1561 阅读 · 5 评论 -
组合
需求后面再补 public static void main(String[] args){ List resultList=new ArrayList<>(); List tempList=new ArrayList<>(); List colorList=new ArrayList<>(); colorList.原创 2017-07-28 16:10:45 · 359 阅读 · 16 评论 -
Tomcat部署Web应用方法总结
Tomcat部署Web应用方法总结在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。一、静态部署静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。以下3种方式都可以部署:(以PetWeb项目为例说明,PetWeb转载 2017-05-28 10:16:46 · 484 阅读 · 7 评论 -
SSH-登录功能流程
网上商城Day1的视频已近敲完了,但是一条线是怎么走,和SSH框架的原理还是一头雾水,所以总结总结博客,让自己理理思路,也希望可以帮助有缘人! 1、点击登录按钮! 点击登录代码之后,submit会提交form表单! 2、 根据from表单中action的路径,在struts.xml配置文件中寻找对应模块!原创 2016-05-22 23:25:55 · 3095 阅读 · 44 评论 -
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java 向 MySQL 插入当前时间的四种方式和 java 时间日期格式化的几种方法 ( 案例说明 );部分资料参考网络资源1. java向MySQL插入当前时间的四种方式第一种 : 将 java.util.Date 类型的时间转成 mysql 数据库识别的 java.sql.Date 类型时间注:java.util.Date是java.sql.Date的父类转载 2016-05-27 16:59:45 · 952 阅读 · 23 评论 -
SSH网上商城—图片显示功能
SSH网上商城已经完成了,现在对一些常用的知识进行总结,方便以后再学习! 图片显示功能: 1、点击首页时出现下面图片 2、代码 点击首页:首页 | 去struts配置文件中找index的模块 /WEB-INF/jsp/index.jsp 去spr原创 2016-06-02 10:46:35 · 1537 阅读 · 17 评论 -
SSH网上商城—Map的用法
java 容器大致可以分为以下三类: Set 、 List 、Map的区别: List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。原创 2016-06-02 15:31:19 · 1991 阅读 · 18 评论 -
SSH-Web项目中 .classpath、.mymetadata、.project文件的作用
在敲SHH邮箱验收功能的时候,需要删除jar包里的两个文件,但是一不小心把整个jar包给删除了!哎,自己的myeclipse是2014的,大家大部分装的都是myeclipse10,文件不一样所以不能拷贝,所以只好重装myeclipse了。但是装好之后,在引入shop项目,发现不能运行!什么原因,看着myeclipse提示的错误也是一头雾水! 后来索性和源码对比,发现原创 2016-05-07 17:38:55 · 1873 阅读 · 31 评论 -
邮件服务器
在看视频的时候,看见一个好玩的东西,虽然不难但是还有要总结一下。以后再用上就省事了!功能大致是这样的,安装一个邮件服务器,然后就可以实现不联网的情况下,小范围内发邮件。 one: 安装邮件服务软件(eyoumailserversetup) two: 配置邮件账号:账号->新建账号 t原创 2016-05-02 20:10:51 · 987 阅读 · 35 评论 -
J2EE的13种核心技术
J2EE平台由一整套服务(SERVICES)、应用程序接口(APIS)和协议构成,它对开发基于WEB的多层应用提供了功能支持。 一、宏观印象: 分布式结构和J2EE 过去,二层化应用--通常被称为CLIENT/SERVER9应用--是大家谈论的最多的。在很多情况下,服务器提供的唯一服务就是数据库服务。原创 2016-02-17 21:12:10 · 992 阅读 · 44 评论 -
J2EE环境变量配置
注意事项:1、安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。两次按照的效果图如下:2、配置环境变量a、在classpath变量(如果没有就新建一个)中放要执行文件的路径,比如说我要执行的“helloworld.java” 文件在 D:\java 文件下原创 2016-01-24 21:59:23 · 1771 阅读 · 46 评论 -
Java web 开发简介
web发展历程 最早的web是以静态web出现的,用户在http浏览器中输入网址将请求通过http协议传送到web服务器上,服务器会根据用户的请求找到相应的网页文件(例如:*.htm、*html)。 随着人们对web的要求越来越高,今天页面已经无法满足人们的要求。SUN公司在1995年推出动态页面技术,动态web技术与静态web技术的原创 2016-06-19 19:54:18 · 2408 阅读 · 23 评论 -
struts 配置过程 -一个计算器程序
1、新建一个java web项目2、引入jar包、jar包路径:struts-1.2.9-bin\lib3、配置web.xml文件 1234567891011121314151617181920原创 2016-08-21 21:24:35 · 1289 阅读 · 30 评论 -
Java中的事务——JDBC事务和JTA事务
之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。关于事务的基础知识这里不再详细介绍,想要了解的同学可以在我的博客中阅读相关文章。Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提转载 2017-03-28 10:41:10 · 3318 阅读 · 15 评论 -
git将项目上传到github
首先你需要一个github账号,所有还没有的话先去注册吧!https://github.com/我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:https://git-for-windows.github.io/1.进入Github首页,点击New repository新建一个项目 2.填写相应信息后点击create原创 2017-02-28 22:03:37 · 537 阅读 · 11 评论 -
jAVA8 十大新特性
本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and people are starting to figure that out.”本教程将用带注释的原创 2017-02-17 20:23:32 · 537 阅读 · 18 评论 -
hibernate 常用属性查询
单一属性://返回结果集属性列表,元素类型和实体类中的属性类型一致 List students = session.createQuery("select name from Student").list(); for (Iterator iter=students.iterator(); iter.hasNext();) {原创 2016-10-30 23:18:09 · 775 阅读 · 26 评论 -
Hibernate 一级缓存 vs二级缓存
二级缓存技术SessionFactory级别的缓存,受SessionFactory管理,可以被不同Session访问和操作。默认是关闭。一般在使用时需要利用SessionFactory.evict()等方法显式的管理该缓存。二级缓存和一级缓存的区别:Hibernate提供了二级缓存机制。首先,Hibernate中的一级缓存机制(也叫做事务内的原创 2016-11-13 19:57:58 · 738 阅读 · 32 评论 -
Spring--入门篇
一、配置环境创建User Library 引入一下.jar包 * SPRING_HOME/dist/spring.jar* SPRING_HOME/lib/log4j/log4j-1.2.14.jar* SPRING_HOME/lib/jakarta-commons/commons-logging.jar提供spring配置文件applicationConte原创 2016-11-19 11:21:45 · 559 阅读 · 33 评论 -
深入理解Spring AOP之基本概念
深入理解Spring AOP之基本概念AOP到底是什么Spring AOP和IOC是听到的关于Spring最频繁的两个词了。现在来重点关注AOP这个词,IOC先放一边,下面这段话摘自Spring优势中关于面向切面的介绍:面向切面——spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(au转载 2016-11-22 21:59:35 · 939 阅读 · 36 评论 -
【SSH】-Hibernate之SchemaExport+配置文件生成表结构
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 所以说,Hibernate讲白了就是简化了与数据库之间的操原创 2016-10-08 16:22:13 · 757 阅读 · 32 评论 -
java2 -宏观了解
Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。Standard Edition(标准版)J2SE 包含那些构成Java语言核心的类。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE 、J2原创 2016-01-24 16:17:51 · 1171 阅读 · 40 评论