
Java
sinolover
完成项目,就要软硬兼施
展开
-
javaee, javaweb和javase的区别以及各自的知识体系
JavaSEJava SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。JavaEE:例如 : 人们常说的SSH =Spring+Struts+Hibernate架构应用...原创 2020-03-09 09:59:33 · 191 阅读 · 0 评论 -
四种并发编程模型简介
概述并发往往和并行一起被提及,但是我们应该明确的是“并发”不等同于“并行”• 并发:同一时间 对待 多件事情 (逻辑层面)• 并行:同一时间 做(执行) 多件事情 (物理层面)并发可以构造出一种问题解决方法,该方法能够被用于并行化,从而让原本只能串行处理的事务并行化,更好地发挥出当前多核CPU,分布式集群的能力。但是,并...原创 2020-03-02 10:10:36 · 821 阅读 · 0 评论 -
select switch语句总是搞混,总结如下
select switch语句总是搞混,总结如下类C:c c++ c# java : 比较 ==switch(expression) { case constant-expression : statement(s); break; /* optional */ case constant-expression : statement(...原创 2020-01-23 09:31:31 · 469 阅读 · 2 评论 -
Java设计模式、框架、架构、平台之间的关系
1、设计模式为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验。比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式。设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它。2、框架做WEB开发...原创 2020-01-04 06:54:28 · 501 阅读 · 0 评论 -
Java对象模型-oop和klass
oop-klass模型Hotspot 虚拟机在内部使用两组类来表示Java的对象和类。oop(ordinary object pointer),用来描述对象实例信息。 klass,用来描述 Java 类,是虚拟机内部Java类型结构的对等体 。JVM内部定义了各种oop-klass,在JVM看来,不仅Java类是对象,Java 方法也是对象, 字节码常量池也是对象,一切皆是对象。J...原创 2019-06-30 10:33:02 · 3353 阅读 · 2 评论 -
Java同步锁——lock与synchronized 的区别【转】
在网上看来很多关于同步锁的博文,记录下来方便以后阅读一、Lock和synchronized有以下几点不同: 1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现,synchronized是在JVM层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且在代码执行时出现异常,JVM会自动释放锁定,但是使...原创 2019-07-05 13:17:44 · 299 阅读 · 0 评论 -
JAVA类 与类文件
在一个.java文件中可以有多个同级类,其修饰符只可以public/abstract/final/和无修饰符1.public修饰的只能有一个,且必须要与文件名相同:因为jvm虚拟机为了提高查找类的速度,使用import语句导入的时候,只会导入对应空间的文件名所对应的class文件,而public文件是大家都要使用的,因此直接导入这个类名对应的class文件即可。import com.by....原创 2019-06-30 11:24:27 · 488 阅读 · 0 评论 -
Java并发:线程共享变量可见性原理
0、线程安全性:线程安全性包括两个方面,①可见性。②原子性。0.1、线程之间的通信:线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种共享内存和消息传递。(1)在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。(2)在消息传递的并发模型里,线程之间没有公共状...原创 2019-07-05 14:35:37 · 683 阅读 · 1 评论 -
深入探究JVM | klass-oop对象模型研究
├─agent Serviceability Agent的客户端实现├─make 用来build出HotSpot的各种配置文件├─src HotSpot VM的源代码│ ├─cpu ...原创 2019-06-30 09:46:18 · 824 阅读 · 0 评论 -
Java对象分配原理
Java对象模型: OOP-Klass模型在正式探讨JVM对象的创建前,先简单地介绍一下hotspot中实现的Java的对象模型。在JVM中,并没有直接将Java对象映射成C++对象,而是采用了oop-klass模型,主要是不希望每个对象中都包含有一份虚函数表,其中:OOP(Ordinary Object Point),表示对象的实例信息 Klass,是Java类的在C++中的表示,用来...转载 2019-06-30 09:00:50 · 892 阅读 · 1 评论 -
JAVA 堆栈 堆 方法区 解析
基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间,又在堆空间分配对象的类变量 。 方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。局部变量 new 出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等...转载 2019-06-30 08:53:39 · 284 阅读 · 0 评论 -
JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)
JSP的基本构成:HTML文件+Java片断+JSP标签三大指令:page指令、include指令、taglib指令。page指令:1.language属性:设置当前页面中编写JSP脚本使用的语言,默认值为java。 <%@page language="java"%>2.contentTy...转载 2019-07-09 11:31:13 · 676 阅读 · 0 评论 -
jsp之九大内置对象与四大域对象
一,什么是内置对象?在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.在serv...转载 2019-07-09 11:18:26 · 250 阅读 · 0 评论 -
JVM核心之JVM运行和类加载全过程
为什么研究类加载全过程?有助于连接JVM运行过程 更深入了解java动态性(解热部署,动态加载),提高程序的灵活性类加载机制JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的java类型的全过程。加载 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这...转载 2019-06-28 09:55:53 · 145 阅读 · 0 评论 -
java中synchronized(同步代码块和同步方法)详解及区别
问题的由来:看到这样一个面试题:? 1 2 3 4 5 6 //下列两个方法有什么区别 public synchronized void method1(){} public void method2(){ synchronized (obj){} } sync...转载 2019-06-28 09:29:47 · 1116 阅读 · 0 评论 -
Java 10 常用集合继承关系图
概述集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。类图如下:1、Iterable与Iterator接口之间的区别我看到好多网上的文章类图里面Collection 是继承Iterator接口,其实不是的,如果你们自己看源码的话是继承的iterable这个接口,而Iterator是个迭代器,通过iterable的这个方法返回的 ...转载 2019-07-01 10:14:15 · 225 阅读 · 0 评论 -
JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别
ava虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。举例说明含义:-Xms128m表示JVM Heap(堆内存)最小尺寸128MB,初始分配-Xmx512m表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错...转载 2019-07-01 13:11:14 · 467 阅读 · 0 评论 -
了解 SharePoint 2010 开发中的关键设计决定
在开发项目时,我们经常用到SVN.但是有时候,只知道把源码放到trunk , 把一些文档放到Document下面。其它的目录都应该放什么东西,应该怎么用。可能都有点模糊。Branch 目录 : 跟工程项目相关的各个工程版本分支。该目录下面的版本分支可能会被修改合并。不是稳定的版本。 Document 目录:跟工程项目相关的文档资料或者一些必要的开发工具或者是软件也可以放一些通用组...原创 2019-09-25 11:53:22 · 177 阅读 · 0 评论 -
Java中Lambda表达式与方法引用和构造器引用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/cjhc666/article/details/54948909方法引用:首先看 Timer t = new Timer(1000, System.out::println);表达式System.out::println 就是一个方...原创 2019-09-10 10:02:26 · 343 阅读 · 1 评论 -
Java实例化对象过程中的内存分配
问题引入这里先定义一个很不标准的“书”类,这里为了方便演示就不对类的属性进行封装了。class Book{ String name; //书名 double price; //价格 public void getInfo(){ System.out.println("name:"+name+";price:"+price); }...转载 2019-07-27 17:59:41 · 444 阅读 · 0 评论 -
详解Class类文件的结构(下)
本文继续使用上次的Test.class文件,它是由下面单独的一个类文件编译而成的,没有包。6. 索引(Index)索引又分类索引、父类索引和接口索引集合,类索引(this_class)和父类索引(super_class)都是一个u2类型的数据,而接口索引集合(interfaces)是一组u2类型的数据的集合,Class文件依靠这些索引数据来确定这个类的继承关系。所有类(除了java.l...原创 2019-07-27 17:44:11 · 573 阅读 · 0 评论 -
详解Class类文件的结构(上)
前言相信搞Java开发的同学都经常会接触到Class类文件,了解了JVM虚拟机之后也会大量接触到class字节码,那么它到底是什么样的文件?内部由什么构成?虚拟机又是如何去识别它的?这篇文章就来学习一下Class类文件的结构。ps:我在面试蚂蚁的时候被问到过这个问题!你没看错,面试也有可能会问。一、什么是Class文件Class文件又称字节码文件,一种二进制文件,它是由某种语言经过...原创 2019-07-27 17:39:52 · 712 阅读 · 0 评论 -
【转】JPA、Hibernate和Mybatis区别和总结
很多人都用过java的数据库连接池C3P0,但官方没有说明名称的由来。据传闻:连接池作者是《星球大战》迷,C3P0就是其中的一个机器人,并且这个名称中包涵connection 和pool的单词字母。因此叫这个名字。C3P0就是下图中的右边的那个机器人。左边是他哥哥R2D2。一、JPA 概述1. Java Persistence API(Java 持久层 API):用于对象...原创 2019-07-23 09:27:19 · 29879 阅读 · 8 评论 -
java多线程同步synchronized——对象监视器
1、synchronized关键字的作用域有二种:1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchron...原创 2019-07-06 18:09:28 · 948 阅读 · 1 评论 -
多线程知识梳理(2) - 并发编程的艺术笔记
layout: posttitle: 《Java并发编程的艺术》笔记categories: Javaexcerpt: The Art of Java Concurrency Programming.<img src="http://upload-images.jianshu.io/upload_images/658453-a94405da52987372.jpg?imageMo...原创 2019-07-06 18:05:28 · 327 阅读 · 0 评论 -
多线程知识梳理(1) - 并发编程的艺术笔记
第三章 Java内存模型3.1 Java内存模型的基础通信 在共享内存的模型里,通过写-读内存中的公共状态进行隐式通信;在消息传递的并发模型里,线程之间必须通过发送消息来进行显示的通信。 同步 在共享内存并发模型里,同步是显示进行的,程序员必须显示指定某个方法或者某段代码需要在线程之间互斥执行;在消息传递的并发模型里,由于消息的发送必须在接收之前,因此同步是隐式进行的。在Java中...原创 2019-07-06 18:04:45 · 263 阅读 · 0 评论 -
守护进程和守护线程
对于JAVA而言,一般一个应用程序只有一个进程——JVM。除非在代码里面另外派生或者开启了新进程。而线程,当然是由进程开启的。当开启该线程的进程离开时,线程也就不复存在了。所以,对于JAVA而言,线程是完全可以由自己的API自由产生。例如new Thread().但是进程就不同,必须通过调用OS的API,如Runtime.getRuntime.exec()。 所以说,进程是OS级别的概念。...原创 2019-07-06 17:58:24 · 1470 阅读 · 0 评论 -
并发编程(原子性、可见性、一致性)
1、原子性(Atomicity)原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。如果一个操作时原子性的,那么多线程并发的情况下,就不会出现变量被修改的情况比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一...原创 2019-07-06 14:13:05 · 865 阅读 · 0 评论 -
volatile和synchronized的区别与联系
这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两种关键字来指定三种简单的存取变量的方式。int i1; int geti1() { return i1;}volatile int i2; ...原创 2019-07-06 14:03:13 · 539 阅读 · 0 评论 -
java Integer 源码学习
转载自http://www.hollischuang.com/archives/1058Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。类定义public final class...转载 2019-06-28 09:25:09 · 198 阅读 · 0 评论 -
java常见异常类图(分类了Error/RuntimeExecption、check Exception)
Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。 Exception:表示可恢复的例外,这是可捕捉到的。Java语言规范对这两个定义十分简单,将派生于Error或者RuntimeException的异常称为unchecked异常,所有其他的异常成...转载 2019-07-02 19:15:03 · 1834 阅读 · 1 评论 -
深入详解JVM内存模型与JVM参数详细配置
本系列会持续更新。JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。BAT必考JVM系列专题1.JVM内存模型2.JVM垃圾回收算法3.JVM垃圾回收器4.JVM参数详解5.JVM性能调优一、JVM内存结构jdk 1.7之前常量池是存放在方法区中 方法...转载 2019-06-27 09:25:57 · 245 阅读 · 0 评论 -
接口和抽象类是否继承了Object
我们先看一下Java的帮助文档对于Object的描述:Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.Object 类是类层...转载 2019-07-02 19:17:54 · 465 阅读 · 0 评论 -
10种常见的软件架构模式
有没有想过要设计多大的企业规模系统?在主要的软件开发开始之前,我们必须选择一个合适的体系结构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,我们应该了解不同的体系结构。什么是架构模式?根据维基百科中的定义:架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。在本文...转载 2019-07-02 19:18:01 · 208 阅读 · 0 评论 -
注解由谁读取并解析的?
问题: 注解由谁读取并解析的?描述:javaweb开发,使用ssh框架。在dao层,定义的类的头上有@Component("GzDAO")注解,在service层, 定义的类的头上有@Service(value="GzService"),@Transactional(readOnly=true)注解,而且这三个注解都是Spring框架提供的,我的疑惑时,每一种注解都有一定的功能,...转载 2019-06-17 10:20:17 · 748 阅读 · 0 评论 -
框架基础——全面解析Java注解
阅读目录一、概念 二、Java中的常见注解 三、注解的分类 四、自定义注解 五、注解的项目实战 六、注解总结为什么学习注解?学习注解有什么好处?学完能做什么?答:1. 能够读懂别人写的代码,特别是框架相关的代码; 2. 让编程更加简洁,代码更加清晰; 3. 让别人高看一眼。spring、mybatis使用了大量的注解,会用注解不是目的,会使用自定义注解才...转载 2019-06-17 10:10:21 · 149 阅读 · 0 评论 -
JAVA 注解的基本原理
以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。于是就有人提出来一种标记式高耦合的配置方式,『注解』。方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解。关于『注解』和『XML』两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便...转载 2019-06-17 10:07:03 · 197 阅读 · 0 评论 -
Java注解全面解析
1.基本语法注解定义看起来很像接口的定义。事实上,与其他任何接口一样,注解也将会编译成class文件。@Target(ElementType.Method)@Retention(RetentionPolicy.RUNTIME)public @interface Test {}除了@符号以外,@Test的定义很像一个空的接口。定义注解时,需要一些元注解(meta-annotat...转载 2019-06-17 09:57:34 · 111 阅读 · 0 评论 -
你看不懂的spring原理是因为不知道这几个概念
背景问题从一杯咖啡开始。今天我去楼下咖啡机买了一杯「粉黛拿铁」。制作过程中显示:我取了做好的粉黛拿铁,喝了一口,果然就是一杯热巧克力。咦咦咦,说好的拿铁呢?虽然我对「零点吧」的咖啡评价很高,觉得味道不亚于星爸爸。但是不可否认它确实给了我一杯假的拿铁。现在很多技术专家好比品鉴咖啡的专家。他们并不需要知道咖啡豆和可可豆的区别,更不知道这两种植物长在树上是什么样子。没关系,这并不影响...转载 2019-06-21 10:26:49 · 206 阅读 · 0 评论 -
Struts1工作原理
Struts1工作原理图1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想)2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协...转载 2019-06-19 15:37:28 · 1806 阅读 · 0 评论