- 博客(102)
- 收藏
- 关注
转载 【JVM】对象分配过程
引用别人的文章,一图胜千言:对象分配流程图1、依据逃逸分析,是否可以栈上分配?如果可以,则使用标量替换,把对象分配到栈空间上,如果线程销毁或方法调用结束后,自动销毁,不需要GC回收器介入。进行第3步操作。2、不满足逃逸分析,判断对象是否是大对象?如果是,直接分配到堆上 Old Generation 老年代上。如果对象变为垃圾后,由老年代GC 收集器(比如 Parallel Old, CMS, G1)回收。不是大对象,则进行第3步操作。3、判断是否可以在 TLAB中分配?如果是,在 ...
2022-05-21 17:05:30 594
原创 区间贪心算法--用最少数量的箭引爆气球
题目链接:力扣package com.javase.leetcode;import java.util.Arrays;import java.util.Comparator;public class Leetcode_452 { public static int findMinArrowShots(int[][] points) {// System.out.println(Arrays.toString(points[0]));// .
2022-04-25 10:56:18 840
原创 如何保证缓存的一致性?
常见的解决方案:1. 先更新数据库后,再更新缓存 如果数据库更新成功,缓存更新失败。那么我们在缓存失效之前,读取到的一直都是老数据,而数据库里面是新数据2. 先更新缓存,再更新数据库 如果缓存更新失败,数据库更新成功。导致我们读取到的一直都是错误的缓存值******************以上两种方案均不可取,无法原子性,所以不要选择更新缓存的操作***************3. 先删除缓存,再更新数据库 实际中有一定的使用量,即使更新数据库失败也...
2022-04-21 16:01:48 635
原创 从一道例题看Java类、实例初始化的顺序
例题:class Father{ private int i = test(); private static int j = method(); static { System.out.print("(F1)"); } Father(){ System.out.print("(F2)"); } { System.out.print("(F3)"); } public int test() { System.out.print("(F4)");
2020-12-22 10:58:23 181
原创 Java WEB中的乱码解决方案
1. 请求编码GET请求解码当客户端通过GET请求发送数据给服务器时,使用request.getParameter()获取的数据是被服务器误认为ISO-8859-1编码的,也就是说客户端发送过来的数据无论是UTF-8还是GBK,服务器都认为是ISO-8859-1,这就说明我们需要在使用request.getParameter()获取数据后,需要再转换成正确的编码。例如客户端以UTF-8发...
2020-03-22 14:33:23 303
原创 Servlet 简介
Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: 接收请求数据 处理请求 完成响应实现Servlet有三种方式: 实现javax.servlet.Servlet接口 继承javax.servlet.GenericSer...
2020-03-22 10:58:37 252
原创 Tomcat 简介
目录1 install Tomcat2 startup and shutdown Tomcat3 config the Tomcat port4 directory structure of Tomcat1 install Tomcatgo tohttp://tomcat.apache.organdinstall Tomcat. Please make sure...
2020-03-12 12:43:54 437
原创 反射概述与Class对象的三种获取方式
Java反射机制: 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取的信息以及动态调用对象方法的功能称为Java语言的反射机制。类加载器: 负责将.class文件加载到内存中,并为之生成对应的Class对象。Bootstrap ClassLoader 根类加载器 ...
2020-02-02 09:49:37 250
原创 Java设计模式: 单例模式
单例模式: 内存中只存在一份该类的实例对象, 分为懒汉式和饿汉式单例模式。开发中:建议使用饿汉式单例模式 (例如JDK中的Runtime类),因为饿汉式不存在线程安全问题。面试中:建议谈谈懒汉式单例模式,因为其中会涉及延迟加载的思想和线程安全的问题,技术含量高点。package ms.gaoke.pattern;/* 1: 饿汉式 单例模式 * 1. 构造方法私有化, 阻止其...
2020-02-01 12:33:24 155
转载 coalesce---一个很有用的函数
在mysql中,其实有不少方法和函数是很有用的,一个叫coalesce的,作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1); -- Return 1 SELECT COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); -- Return 1 如果传...
2019-01-07 11:37:06 1474
原创 Spring的Bean生命周期方法
代码实现:PersonService.javapackage cn.itcast.beanlife;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.f...
2018-09-10 11:45:26 352
原创 Spring的IOC、DI及ApplicationContext与BeanFactory
IOC(Inverse Of Control)控制反转 : 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。DI(Dependency Injection)依赖注入: 实际上DI和IOC是同一个概念,spring设计者认为DI更准确表示spring核心技术。 ...
2018-09-09 20:23:03 237
原创 泛型 ? extends E ? super E
package cn.itcast.generic;import java.util.ArrayList;import java.util.Collection;public class SupperGenericDemo { public static void main(String[] args) { // 泛型如果明确写的时候,前后必须一致 ,c2,c3,c4会报错 ...
2018-09-02 13:41:03 256
原创 集合框架--List ConcurrentModificationException
ConcurrentModificationException.javapackage cn.itcast.exception;import java.lang.ref.SoftReference;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util....
2018-09-01 09:16:03 213
原创 反射越过泛型检查
ReflectionDemo.java:package cn.itcast.reflection;import java.lang.reflect.Method;import java.util.ArrayList;/** * 我给你ArrayList<Integer>的一个对象,我想在这个集合中添加一个字符串数据,如何实现呢? * */public cla...
2018-08-31 08:49:55 234
原创 设计模式--装饰设计模式
装饰设计模式概述: 装饰模式就是使用被装饰类的一个子类的实例,在客户端将这个子类的实例交给装饰类。是继承的替代方案优点: 使用装饰模式,可以提供比继承更灵活的扩展对象的功能,它可以动态的添加对象的功能,并且可以随意的组合这些功能缺点: 正因为可以随意组合,所以就可能出现一些不合理的逻辑Phone.javapackage cn.itcas...
2018-08-31 08:46:34 212
原创 设计模式--模版设计模式
模版设计模式概述: 模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现优点: 使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求缺点: 如果算法骨架有修改的话,则需要修改抽象类案例:计算一段程序的运行时间:TemplatePattern.javapackage cn.itcas...
2018-08-31 08:10:47 255
原创 设计模式--单例模式
单例设计模式概述: 单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供。优点 : 在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。缺点 : 没有抽象层,因此扩展很难。 职责过重,在一定程序上违背了单一职责。 TestSinglePattern...
2018-08-30 09:34:21 224
原创 Spring自定义属性编辑器
什么叫属性编辑器及其作用? *将spring配置文件中的字符串转换成相对应的java对象 *spring内置了一些属性编辑器,也可以自定义属性编辑器自定义属性编辑器的步骤:继承PropertyEditorSupport 覆盖setAsText()方法 将自定义属性编辑器注入到spring中实例代码:UtilDatePropertyEditor.ja...
2018-08-29 07:43:43 549
原创 Spring注入与配置文件加载方式
目录set方法注入:构造方法注入:配置文件的加载方式:Spring的注入方式常用的有set方法注入和构造方法注入set方法注入:applicationContext-beans.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/...
2018-08-29 07:28:59 335
原创 JAVA多线程常见面试题总结
1:多线程有几种实现方案,分别是哪几种? 两种。 继承Thread类 实现Runnable接口 扩展一种:实现Callable接口。这个得和线程池结合。2:同步有几种方式,分别是什么? 两种。 同步代码块 同步方法3:启动一个线程是run()还是start()?它们的区别? start(); ...
2018-08-27 21:00:22 374
原创 多线程匿名内部类实现
package cn.itcast.innerclass.startThread;/** * 匿名内部类的格式: * new 类名或者接口名(){ * 重写方法; * }; * 本质:是该类或者接口的子类对象 * */public class InnerClassStartThread { public static void main(String[] a...
2018-08-27 20:46:49 254
原创 JAVA实现多线程的三种方式
方式一:继承Thread类 MyThread.javapackage cn.itcast.createThread;/** * 方式一: 继承Thread类 * 步骤: * a:自定义MyThread类继承Thread类 * b:MyThread类里面重写run方法 * 为什么是run方法?: * 不是类 中所有的代码都需要被线程执行的...
2018-08-27 20:34:34 289
原创 JAVA生产者与消费者代码优化
Student.javapackage cn.itcast.productAndConsumer;public class Student { private String name; private int age; private boolean flag; public synchronized void setFun(String name, int age){ ...
2018-08-27 07:30:42 206
原创 JAVA生产者与消费者案例
Student.javapackage cn.itcast.productAndConsumer;public class Student { private String name; private int age; private boolean flag; public String getName() { return name; } public void ...
2018-08-27 07:03:34 601
原创 死锁问题 JAVA代码
MyLock.java 锁对象代码:package cn.itcast.dieLock;public class MyLock { public static Object Lock1 = new Object(); public static Object Lock2 = new Object(); }DieLock.java:package cn.itcast....
2018-08-24 13:55:16 173
原创 多线程 Lock
SellTickets.javapackage cn.itcast.lock;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class SellTickets implements Runnable { private int ticket...
2018-08-24 13:38:56 229
原创 多线程同步方法 synchronized
SellTickets.javapackage cn.itcast.synchronize;public class SellTickets implements Runnable{ private int tickets = 100; //定义同一把锁 private Object obj = new Object(); @Override public void ru...
2018-08-24 08:35:59 224
原创 快逸报表传递中文参数乱码解决
javascript通过url向jsp页面传递中文参数乱码解决方法解决方法:在传递参数前将中文参数进行两次编码,jsp页面获取参数后对中文参数进行一次解码,中文参数就不会变为乱码了!参考例子:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>&l...
2018-08-10 15:23:28 558
转载 平面划分规律
注明出处,摘自 http://www.cnblogs.com/chaosheng/archive/2012/01/26/2329583.html(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分...
2018-08-10 15:22:49 1449
原创 Double类型数据精度丢失问题
public BigDecimal(double val)注:此构造方法的结果有一定的不可预知性。有人可能认为在 Java 中写入 new BigDecimal(0.1) 所创建的 BigDecimal 正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于 0.10000000000000000555111512312578270211815834045410156...
2018-08-10 15:21:50 15825
原创 原生态的数据库操纵代码及总结
目录代码:总结: 代码://数据库连接 Connection connection = null; //预编译的Statement,使用预编译的Statement提高数据库性能 PreparedStatement preparedStatement = null; //结果 集 ResultSet resultSet = null; ...
2018-08-09 14:16:25 293
原创 TJOJ 1101 软件工程师英语水平测试
题目描述在新格尔软件公司有一个有趣的考试,名字叫做软件工程师英语水平测试,每年有两次,分别在每年的8月17日和12月的第一个星期六举行。菜哭文是刚刚入职的一名软件工程师,他给自己定了一个小目标,要在自己进入这个公司的N周年纪念日到来之前通过这个测试,那么他想知道自己有多少次机会参加这个考试。举个例子,如果他是2016年4月16日入职的,那么2017年4月16日就是1周年纪念日。对于他来说这件事情是...
2018-04-08 09:58:37 623
转载 Spring+Quartz实现定时任务的配置方法
Quartz是Java版开源定时调度器。 核心概念: Job表示一个工作,要执行的具体内容。此接口中只有一个方法void execute(JobExecutionContext context);JobDetailJobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。 Trigger代表一个调度参数的配...
2018-03-13 11:13:55 266
原创 TJOJ 1072: 回形取数
题目描述? 基础练习 回形取数 ? 时间限制:1.0s ? 内存限制:512.0MB ? ? 问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式 输出只有一行,共mn个数,为输入矩阵...
2018-03-05 16:48:27 357
原创 TJOJ 1080: 芯片测试
题目描述? 基础练习 芯片测试 ? 时间限制:1.0s ? 内存限制:512.0MB ? ? 问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。 每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。 给出所有芯片的测试结果,问...
2018-03-05 16:46:58 672
原创 TJOJ 1084: 最近的距离
题目描述 在新格尔王国神奇的土地上,有着一群神奇的人们。有一天,三个很无聊的人,菜哭文,牛哭文,牛乐武聚在了一起,他们实在是太无聊了,就开始了一个游戏。菜哭文和牛哭文分别从不同的地方,向着某个方向,同时跑起来。让牛乐武来计算,如果他们一直跑下去,两个人跑动中最近的距离是多少。 牛乐武当然是能算出来了,但是他觉得这件事情很无聊,他并不想做,所以他把问题丢给了你。请注意:在计算距...
2018-03-05 09:52:38 711 1
原创 TJOJ 1001: 染色
题目描述新格尔王国的国王为了考查王子们的能力以决定王位继承者,提出了这样一个问题。有n个点,m条边,现在要给n个点染色,有4种颜色供选择,但相邻的点(两点有连边)不能染相同的颜色,问一共有多少种染色方案?输入第一行,两个数n,m,含义如题目所述。(1<=n<=10,1<=m<=50)接下来m行,每行两个数a,b,表示a,b之间有一条连边。输出输出一个数,表示总方案数。样例输...
2018-03-05 09:49:38 1222 1
原创 TJOJ 1002: 正方形
题目描述新格尔王国的皇家花园内只有2种花,分别是红色和黄色的,花共有n行m列,花园的负责人很喜欢红花,他想划定一个最大的正方形区域,使得区域内全部是红花,请问这个区域最大边长是多少?输入第一行两个数n,m,含义如题目所述。(1<=n,m<=1000)以下是n行m列的01矩阵,1表示红花,0表示黄花,数字之间有一个空格。输出输出一个数,表示最大正方形红花区域的边长。样例输入4 40 1 ...
2018-03-05 09:45:51 1122
转载 PL/SQL(八):编写游标
一、游标 是Oracle系统在内存中开辟的一个工作区,在其中存放select语句返回的查询结果。二、游标分类 1、隐式游标 1)PL/SQL隐式建立并自动管理这一游标 2)隐式游标属性 SQL%ROWCOUNT 返回最近一条SQL语句所影响到的记录的数量(整数型) S
2017-06-19 13:38:13 614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人