![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
自闭了哈
这个作者很懒,什么都没留下…
展开
-
对 “String内容不能改变,String的值不能修改” 的理解
String内容不能改变的理解 String的值不能修改的理解 java中,String类的值声明后是不能修改,有些初学者就难以理解,为什么下面程序明明是修改了String对象的内容,为什么还可以正常运行? public class JavaTest { public static void main(String[] args) { String s...转载 2018-08-27 23:45:16 · 1819 阅读 · 1 评论 -
Java中的json操作
package com.ss1.json;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSO...转载 2019-01-08 17:26:16 · 426 阅读 · 0 评论 -
spring data jpa 分页查询
法一(本地sql查询,注意表名啥的都用数据库中的名称,适用于特定数据库的查询)public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1", countQuery = "SELECT count...转载 2019-01-04 17:28:19 · 204 阅读 · 0 评论 -
深入理解单例模式:静态内部类单例原理
本文主要介绍java的单例模式,以及详细剖析静态内部类之所以能够实现单例的原理。OK,废话不多说,进入正文。首先我们要先了解下单例的四大原则:1.构造私有。2.以静态方法或者枚举返回实例。3.确保实例只有一个,尤其是多线程环境。4.确保反序列换时不会重新构建对象。我们常用的单例模式有:饿汉模式、懒汉模式、双重锁懒汉模式、静态内部类模式、枚举模式,我们来逐一分析下这些模式的...转载 2018-09-10 22:00:11 · 496 阅读 · 0 评论 -
web服务启动spring自动执行ApplicationListener的用法
我们知道,一般来说一个项目启动时需要加载或者执行一些特殊的任务来初始化系统,通常的做法就是用servlet去初始化,但是servlet在使用spring bean时不能直接注入,还需要在web.xml配置,比较麻烦。今天介绍一下使用spring启动初始化的方法。其实很简单,只需两步就可以了。在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据、加载一些数据到内存...原创 2018-09-10 16:28:02 · 1644 阅读 · 0 评论 -
ava --- 线程同步和异步的区别
1. Java 线程 同步与异步多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线程的处理的数据,而B线程又修改了A线程处理的数理。显然这是由于全局资源造成的,有时为了解决此问题,优先考虑使用局部变量,退而求其次使用同步代码块,出于这样的安全考虑就必须牺牲系统处理性能,加在多线程并发时资源挣夺最激烈的地方,这就实现了线程的同步机制1.1 同步A线程要...转载 2018-09-16 21:56:21 · 277 阅读 · 0 评论 -
Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术
package mythread;public class CountOperate extends Thread{ public CountOperate(){ System.out.println("CountOperate---begin"); System.out.println("Thread.currentThread().getName...转载 2018-09-16 20:19:40 · 126 阅读 · 0 评论 -
Java关键字default
default常用于接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方法体的函数,就类似于C++中的虚函数,default关键字在接口中修饰方法时,方法可以有方法体,来看一个例子。 public interface Default { default public void method(){ System.out.printl...转载 2018-09-09 23:21:53 · 1631 阅读 · 0 评论 -
Spring AOP实现对Redis的缓存同步
请求过程:根据请求参数生成Key,后面我们会对生成Key的规则,进一步说明; 根据Key去缓存服务器中取数据,如果取到数据,则返回数据,如果没有取到数据,则执行service中的方法调用dao从DB中获取数据,同时成功后将数据放到缓存中。 删除、新增、修改会触发更新缓存的拦截类对缓存服务器进行更新。 1.首先贴上核心注解类@Retention(RetentionP...原创 2018-09-11 16:28:18 · 770 阅读 · 0 评论 -
值传递和引用传递的区别
1:按值传递是什么指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下: [java] view plaincopypublic class TempTest { private void test1(int a){ //做点事情 } public static void main(String[] args) { TempTest t = new...转载 2018-08-29 21:26:52 · 13266 阅读 · 2 评论 -
SSM框架中spring的XML文件配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" ...原创 2018-08-09 17:10:16 · 1218 阅读 · 0 评论 -
Java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。栈区:1.每个线...转载 2018-08-20 23:56:42 · 413 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String,StringBuffer与StringBuilder的区别String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) (1)striing类简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的...转载 2018-08-27 23:45:54 · 116 阅读 · 0 评论 -
Lambda表达式
Lambda表达式在说Lambda表达式之前我们了解一下函数式编程思想,在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。 下面以匿名内部类创建线程的代码案例详细说明这个问题。public class Thre...转载 2019-08-08 15:04:02 · 170 阅读 · 0 评论