
java
fengzhuzhigu
这个作者很懒,什么都没留下…
展开
-
linux启动springmvc项目的详细步骤,包括软件安装
1. 修改配置文件1.1 修改maven配置文件 :mvn_dir/ conf/setting.xml1.2 修改数据库配置文件,以baobab为例:将dao层的红线处配置文件修改为如下:db.driverName=com.mysql.jdbc.Driverdb.url=jdbc:mysql://192.168.0.252:3306/baobab?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&jdbc原创 2020-06-28 10:35:37 · 2062 阅读 · 0 评论 -
Java 基本数据类型之间的转换
一、数据类型JAVA基本数据类型及之间的转换 - 小松松 - liusong0605 的博客1.布尔型(boolean) :true/false,不可以以0或非0的数字代替;不能进行数据之间的转换。2.整数类型JAVA基本数据类型及之间的转换 - 小松松 - liusong0605 的博客** 整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l)。如:long l1=12345678 // 数值在int范围之内,还不会出错long原创 2020-05-15 09:08:16 · 522 阅读 · 0 评论 -
反射的作用及意义
反射的定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。反射的应用场合:在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息.在运行阶段使用,不能写死;工厂模式,动态生成对象;框架底层;运行过程中修改jar包中的一些内容(由于反射会额外消耗一定的系统资源,因此如果不需要动态地创建一个对象,那么就不需要用反射。原创 2020-05-12 14:58:45 · 3181 阅读 · 0 评论 -
进程与线程的区别
看了一遍排在前面的答案,类似”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答感觉太抽象,都不太容易让人理解。做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火原创 2020-05-11 09:43:54 · 198 阅读 · 0 评论 -
接口和抽象类的区别
原创 2020-04-21 15:11:20 · 109 阅读 · 0 评论 -
八大数据类型
原创 2020-04-15 22:07:31 · 142 阅读 · 0 评论 -
Java的CountDownLatch和CyclicBarrier的理解和区别
CountDownLatch和CyclicBarrier的功能看起来很相似,不易区分,有一种谜之的神秘。本文将通过通俗的例子并结合代码讲解两者的使用方法和区别。CountDownLatch和CyclicBarrier都是java.util.concurrent包下面的多线程工具类。从字面上理解,CountDown表示减法计数,Latch表示门闩的意思,计数为0的时候就可以打开门闩了。Cycli...原创 2020-04-06 19:27:51 · 361 阅读 · 1 评论 -
类的加载机制
关于关键字static,大家 都知道它是静态的,相当于一个全局变量,也就是这个属性或者方法是可以通过类来访问,当class文件被加载进内存,开始初始化的时候,被static修饰的变量或者方法即被分配了内存,而其他变量是在对象被创建后,才被分配了内存的。所以在类中,加载顺序为:1.首先加载父类的静态字段或者静态语句块2.子类的静态字段或静态语句块3.父类普通变量以及语句块4.父类构造方法被...原创 2020-04-04 16:23:50 · 105 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别|
String,StringBuffer与StringBuilder的区别|线程安全与线程不安全String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等...原创 2020-04-02 14:14:45 · 83 阅读 · 0 评论 -
fail-fast机制
fail-fast机制 还是有点没弄明白比较好的文章原创 2020-03-28 12:43:09 · 119 阅读 · 0 评论 -
linklist详解
这个博客记录的很详细原文链接原创 2020-03-28 12:42:53 · 2018 阅读 · 0 评论 -
一个类在什么情况下会初始化
1、T是一个类,而且一个T类型的实例被创建。2、T是一个类,且T中声明的一个静态方法被调用。3、T中声明的一个静态字段被赋值。4、T中声明的一个静态字段被使用,而且这个字段不是一个常量字段。5、T是一个顶级类(Top Level Class,见Java语言规范的§7.6),而且一个断言语句嵌套在T 内部被执行。...原创 2020-03-28 12:39:25 · 248 阅读 · 0 评论 -
排序算法时间复杂度和稳定性
原创 2020-03-28 12:09:32 · 165 阅读 · 0 评论 -
Map详解以及常见面试题
HashMap详解以及常见面试题一、概要本文先会将hashmap的基本概念属性梳理一遍后,再从增删改查方法中每个步骤逐一解释说明。力求达到通熟易懂,逻辑清晰,便于加深印象。二、概念首先Hashmap的底层数据结构是由数组+链表组成的,是线程不安全,允许key和value为null。底层结构数组叫哈希桶,而桶内则是链表,链表中的节点Node存放着实际的元素。Hashmap中获取元素时的主...原创 2020-03-02 23:32:16 · 691 阅读 · 0 评论 -
java集合常考题
1. ArrayList,LinkedList,vector的区别。ArrayList、Vector和LinkedList类均在java.util包下ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会在内存中开辟一块连续的空间来存储,因为数据存储是连续的,所以它们支持用下标来访问元素,索引数据的速度比较快。1)ArrayList和Vector都有...原创 2020-03-02 21:53:23 · 270 阅读 · 0 评论 -
pojo和javabeans
POJO (Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。 其中有一些属性及其getter、setter方法的类,没有业务逻辑,有时可以作为VO(value-object)或DTO(Data Transfer Object)来使用。不允许有业务方法,也不能携带connection之类的方法,实际...转载 2020-02-17 14:21:06 · 207 阅读 · 0 评论 -
happens-before规则02
happens-before规则摘录自:java 并发编程的艺术原创 2020-02-09 23:57:58 · 95 阅读 · 0 评论 -
内存屏障
为了保证内存可见性,Java编译器在生成指令序列的适当位置会插入内存屏障指令来禁 止特定类型的处理器重排序。JMM把内存屏障指令分为4类StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处 理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂 贵,因为当前处理器通常要把写缓冲区中的数据全部刷新到内存中(Buffer F...原创 2020-02-09 22:33:43 · 129 阅读 · 0 评论 -
happens-before规则
Java内存模型中的happens-before是什么?为什么会有这东西的存在?其实我们学习的初期或者时间很急迫的时候我们都是死记硬背,没有理解这东西背后的含义和为什么需要这东西。没办法比如项目赶,一个新东西肯定是上手先,但是等我们空下来回过头来,我们还是需要去理解这些知识,只有这样我才能深刻的记住,并且运用熟练。今天我们来说说happens-before。happens-before字面...原创 2020-02-08 11:34:39 · 155 阅读 · 0 评论 -
自旋锁,读写锁
自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。示例代码:package concurrent;/***@author liuye*@version 创建时间: 20...原创 2020-02-04 18:31:54 · 327 阅读 · 0 评论 -
volatile和synchronized的区别
volatile和synchronized的区别volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取; synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的volatile仅能实现变量的修改可见性,不能保证原子性;而sy...原创 2020-01-27 23:56:29 · 120 阅读 · 0 评论 -
java注解
一、定义与作用概念:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。概念描述:JDK1.5之后的新特性说明程序的使用注解:@注解...原创 2020-01-27 10:55:28 · 108 阅读 · 0 评论 -
秒杀系统架构讲解
今天我们一起来看看,一套秒杀系统在架构设计上需要有哪些考量:秒杀场景的特点系统隔离的设计思路客户端设计代理层设计应用层设计数据库设计压力测试总结秒杀场景的特点秒杀场景是电商网站定期举办的活动,这个活动有明确的开始和结束时间,而且参与互动的商品是事先定义好了,参与秒杀商品的个数也是有限制的。同时会提供一个秒杀的入口,让用户通过这个入口进行抢购。总结一下秒杀场景的特点:定时开...转载 2020-01-21 22:21:38 · 3027 阅读 · 0 评论 -
java 注解
Java注解写的不错原创 2020-03-28 12:41:45 · 98 阅读 · 0 评论 -
callable和runnable的区别
Runnable其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。Runnable的声明如下 :public interface Runnable { /* * @see ...转载 2020-01-15 16:27:43 · 237 阅读 · 0 评论 -
java 中创建线程有哪几种方式?
Java中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。package com.nf147.Constroller;public clas...原创 2020-01-15 16:17:50 · 1811 阅读 · 1 评论 -
transient关键字
百度百科的解释: Java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。作用:Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对...转载 2020-01-11 23:44:40 · 129 阅读 · 0 评论 -
java反射详解
转载这个写的很好有反射的比较好的,流程讲解转载 2019-12-28 18:08:26 · 112 阅读 · 0 评论