• 等级
  • 766108 访问
  • 504 原创
  • 503 转发
  • 2053 排名
  • 77 评论
  • 135 获赞

Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)

Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典) 1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题。(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。 释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同...

2019-01-15 19:02:26

sessionid如何产生?由谁产生?保存在哪里?

sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。 session在访问tomcat 服务器HttpServletRequest的getSession(true)的时候 创建,tomcat的ManagerBase类提供创建sessionid的方法: 随机数...

2018-12-12 22:12:29

java反射中,Class.forName和classloader的区别(代码说话)

java中class.forName()和classLoader都可用来对类进行加载。 class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。 而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。 Class.forNam...

2018-12-12 22:06:12

在Java的反射中,Class.forName和ClassLoader的区别

前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。 解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的...

2018-12-12 21:50:48

Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序

文章转载地址:https://blog.csdn.net/qq_27093465/article/details/70292221 class B extends A ,然后A类也就是父类里面有静态代码块,普通代码块,静态方法,静态成员变量,普通成员变量,普通方法。 子类也是这样,然后继承之后,关于程序打印输出的结果。 涉及到Java类的各种成员的初始化顺序。 经测试,得到如下结论: 1.父类...

2018-12-12 21:27:39

聊聊C10K问题及解决方案

1、 C10K问题 大家都知道互联网的基础就是网络通信,早期的互联网可以说是一个小群体的集合。互联网还不够普及,用户也不多。一台服务器同时在线100个用户估计在当时已经算是大型应用了。所以并不存在什么C10K的难题。互联网的爆发期应该是在www网站,浏览器,雅虎出现后。最早的互联网称之为Web1.0,互联网大部分的使用场景是下载一个Html页面,用户在浏览器中查看网页上的信息。这个时期也不存在C...

2018-12-02 14:44:14

java 四种线程池的使用

介绍new Thread的弊端及Java四种线程池的使用 1,线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果。  少了浪费了系统资源,多了造成系统拥挤效率不高。  用线程池控制线程数量,其他线程排 队等候。 一个任务执行完毕,再从队列的中取最前面的任务开始执行。  若队列中没有等待进程,线程池的这一资源处于等待。 当...

2018-12-02 12:58:32

ThreadPoolExecutor策略配置以及应用场景

ThreadPoolExecutor 是用来处理异步任务的一个接口,可以将其理解成为一个线程池和一个任务队列,提交到 ExecutorService 对象的任务会被放入任务队或者直接被线程池中的线程执行。ThreadPoolExecutor 支持通过调整构造参数来配置不同的处理策略,本文主要介绍常用的策略配置方法以及应用场景。 ThreadPoolExecutor 的处理逻辑 首先看一下 Th...

2018-12-02 12:53:24

java多线程、线程池及Spring配置线程池详解

1、java中为什么要使用多线程 使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源。 2、java中简单的实现多线程的方式 继承Thread类,重写run方法; class MyTread extends Thread{ public void run() {    System.out.println(Thr...

2018-12-02 11:50:55

Java线程池--线程池的五种状态

线程池的5种状态:Running、ShutDown、Stop、Tidying、Terminated。 线程池各个状态切换框架图: 1、RUNNING (1) 状态说明:线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理。  (02) 状态切换:线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建,就处于RUNNING状态,并且线程池中的任务数为0! ...

2018-12-02 11:06:25

Java并发编程:线程池的使用

                                                          Java并发编程:线程池的使用   在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:   如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时...

2018-12-02 09:48:58

Union和Union All到底有什么区别

以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证: Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序;   下面进行简单的测试(因为是测试,所以sql代码写的很简单,没有什么很严格的规范,只是...

2018-11-29 18:28:08

volatile的使用及其原理

1、 volatile的作用 相比Sychronized(重量级锁,对系统性能影响较大),volatile提供了另一种解决可见性和有序性问题的方案。对于原子性,需要强调一点,也是大家容易误解的一点:对volatile变量的单次读/写操作可以保证原子性的,如long和double类型变量,但是并不能保证i++这种操作的原子性,因为本质上i++是读、写两次操作。 2、volatile的使用 1、...

2018-11-21 11:29:33

Java中Volatile关键字详解

Java中Volatile关键字详解 博文地址:http://www.cnblogs.com/zhengbin/p/5654805.html

2018-11-21 11:25:26

Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析 博文地址:https://www.cnblogs.com/dolphin0520/p/3920373.html

2018-11-21 11:20:45

彻底搞定欢乐锁与悲观锁

本文并未全部原创,感觉网络上的知识比较混乱,故自己整理了一下。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制采用的技术手段,是由人们定义出来的概念。可以认为是一种思想。 针对不同的业务情景,应该选用不同的并发控制方式。所以,不要把乐观锁和悲观锁狭义的理解为DBMS(数据库管理)中的概念,更不要与数据库中提供的锁机制(行锁、表锁、共享锁、排他锁)混为一谈。 首先了解下数据库锁的概念...

2018-11-21 11:07:40

最通俗易懂的乐观锁与悲观锁原理及实现

一、乐观锁   总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。  version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取ve...

2018-11-21 10:53:47

Spring Cloud 常用框架组件

转载地址:https://blog.csdn.net/qiuyinthree/article/details/80408751 微服务的理解:  就是把一个项目拆分为多个项目, 项目之间进行独立运行。 通过Http或者Socket来进行通信处理数据和调用。 Spring  Cloud  Eureka(服务治理):         服务治理: 服务治理是微服务架构中最为核心和基础的模块,它主要...

2018-11-19 14:28:18

map遍历的四种方式

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap {     public static void main(String[] args) {         Map<Integer, String> map = new HashMap<...

2018-11-14 11:38:19

哪些情况下索引会失效?

索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)      注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引   2.对于多列索引,不是使用的第一部分,则不会使用索引   3.like查询是以%开头   4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,...

2018-11-07 11:48:56

AlbenXie

关注
  • 计算机软件/开发组长/高级工程师/技术专家
  • 上海 浦东新区
奖章
  • 持之以恒