- 博客(34)
- 收藏
- 关注
原创 java编程思想笔记中级篇第5-12、14、15、17章(未完。。)
第5章初始化与清理5.1 用构造器确保初始化当代码执行到new Test()时,将会给对象分配内存,并调用相应的构造器。5.2方法重载如果想用多种方式创建一个对象,那么就用到方法重载,一个默认构造器,一个有参构造器。方法名相同、参数列表不同(可以顺序不同)。5.3默认构造器如果类中没有构造器,则编译器会创建一个默认构造器。如果有(无论有参无参),编译器都不会创建。5.4this关键字在方法内部获得当前对象的引用。this是编译器传入的。直接调用。this可以省略5.5在构
2020-10-27 23:40:08
177
原创 java编程思想笔记基础篇第1-4、13、16、18章
1.1抽象过程万物皆是对象。程序是对象的集合,通过发消息(对象方法的调用)来告诉彼此要做的。对象包含其他对象。对象有类型,即每个对象都是某个类(Class)的实例。对象具有状态(属性)、行为(方法)和标识(唯一地址)。1.2每个对象都有一个接口(方法)类是具有相同特性(数据元素)和行为(功能)的对象的集合,类也是一种数据类型。接口(方法)确定了对象所能发出的请求。满足这些请求的代码被称为接口(方法)的实现1.3每个对象都提供服务程序提供服务,程序由对象组成,所以我们可以把对象想
2020-10-25 22:55:23
264
原创 springcloud02微服务架构
1.2.约定>配置>编码3.架构搭建流程:建module、该pom、写yml、主启动、写业务4.run dashboard
2020-10-25 00:07:11
191
原创 springcloud-01微服务架构理论
1.服务与服务之间采用轻量级的通信机制(通常是http协议和restful api),每个服务独立部署、可用不同服务器、不同开发语言、不同数据库。2.分布式微服务架构体系服务注册于发现,Eureka、Zookeeper、Consul、Nacos服务调用,Ribbon、Feign、OpenFeign、LoadBanlancer服务熔断,Hystrix、Sentinel负载均衡,Ribbon,Feign服务降级,Hystrix服务消息队列,服务配置,springcloud config、Naco
2020-10-24 11:22:36
122
原创 ehcache中的element源码学习
1.在cache中存放的原子数据单位就是element类,主要就是存放key、value下面是element类的详细介绍//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package net.sf.ehcache;import java.io.ByteArrayInputStream;import java.io.ByteArrayOu
2020-10-21 22:49:38
643
原创 脚手架express
总概述:express框架+vue框架或html=后端+前端,数据交互用http请求1.搭建后端步骤:1.检查是否安装了后端脚手架 执行: express --version2.没有则安装, 执行: npm install express-generator -g3.创建后端项目,执行: express test_express4.进入项目文件根目录 ,执行: npm install5.执行 npm start 访问 http://localhost:3000/6.
2020-10-17 09:42:16
142
原创 文件夹copy
import java.io.*;public class CopyFiles { public static void main(String[] args) throws Exception { String src = "E:\\java\\workspace\\Day01\\sources\\a";//源路径 String tar = src+1;//目标路径 copyFolder(src,tar);//拷贝文件夹方法 }
2020-05-15 23:43:25
116
原创 多个数据库存在一个sql文件上的文件分割
起因:本来电脑上装的是mysql5.5,有三十多个数据库,都是平时自己写demo创建的。数据量差不多有5G左右,后来公司要求用mysql5.7,因为不想直接删库,又不想直接一个一个导出来,索性直接全部导到一个文件中AllMySql20200331.sql。导出来容易,导进去难。我用Navicat导入的时候,发现很多数据都无法导进去,而且耗时很长。于是就想出分割文件的方法。把这一个文件分成三十多个文件,每个数据库有自己的sql总思路:先求AllMySql20200331.sql的总行数,求每个数据库定义
2020-05-14 16:17:11
686
1
原创 java创建对象的几种方式
public class Person implements Cloneable, Serializable { public void hello(){ System.out.println("hello world"); } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); }}public
2020-05-14 01:16:27
110
原创 spring Ioc原理
关于BeanFactory(模仿Spring的Ioc)创建bean.properties。给出两个service的全类名,根据反射生成实例对象,存入spring容器BeanMap中。accountService = com.ruixun.service.impl.AccountServiceImplaccountDao = com.ruixun.dao.impl.AccountDaoImpl代码public interface AccountDao { void addAccou
2020-05-14 01:13:59
98
原创 java多线程笔记3
线程间通信wait/notify机制服务员等厨师做好菜(wait),厨师做好菜通知服务员(notify)持有相同锁的线程才可以实现通信机制。并且要在同步方法或代码块中执行wait方法是Object的方法,作用是让当前执行wait方法的线程等待,并且释放锁,直到接到通知或被中断为止。notify通知暂停的线程继续运行...
2020-05-11 02:36:57
209
原创 java多线程笔记2
线程安全存在于实例变量中,方法内部变量不能存在线程安全问题sychronized可重入锁指,自己再次获取自己的锁public class Service { synchronized public void service1(){ System.out.println("service1"); service2(); } synchronized private void service2() { System.out.print
2020-05-10 09:44:50
149
原创 java多线程笔记1
1 初识线程public class HelloMain { public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); }}上面解释为:名称为main的线程在实现main()方法中的代码使用多线程打开源码我们发现Thread类竟然实现类Runnable接口。所以我们可以这样创建线程public class HelloMain
2020-05-10 07:20:36
144
原创 单例模式的理解与学习笔记
单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象1. 懒汉式:需要的时候在创建public class Danli { /*懒汉式*/ private static Danli lanhan = null; private Danli(){}; public static Danli getLanhan(){ if(null == lanhan){
2020-05-09 00:38:52
104
原创 redis知识点
Redis缓存失效机制EXPIRE key 30 设置失效时间30秒两种情况:1延迟失效机制,2主动失效机制1:延迟失效机制当客户端请求操作某个key的时候,Redis会对客户端请求操作的key进行有效期检查,如果key过期才进行相应的处理,延迟失效机制也叫消极失效机制。缓存失效的主动权在Master机器上面,slave机器没有权限将key失效。如果当前是Master机器,且key...
2020-04-15 17:25:32
99
原创 springboot整合redis
这个项目是springboot整合redis的demo,参考源码在最下面。1 创建空的maven工程,我的是(springboot_redis_tesst)2 添加pom依赖, <parent> <groupId>org.springframework.boot</groupId> <artifactId>...
2020-04-15 16:45:06
87
原创 java泛型
List<String> list = new ArrayList<>(); 该写法正确 List list1 = new ArrayList<String>(); 该写法正确 List<String> list2 = new ArrayList<String>(); 该写法正确 list.add(111); 编译错...
2020-04-13 17:47:06
70
原创 面试题之好玩的程序:持续更新
下面的代码执行了几次(0次) for(int x=0,y=0;(y!=0&&x<5);x++){ System.out.println(x); }下面的代码怎么执行(0,1,2,3,4,4,4…无限循环) for (int i = 0; i < 10; i++) { Sy...
2020-04-13 16:06:25
123
原创 update语句锁表还是锁行
1 查询数据库自动提交设置方式select @@autocommit – 查询数据库是否是自动提交的 结果1(true)为自动提交,结果0(false)为不自动提交2 SET AUTOCOMMIT = 0; – 设置数据库提交方式为不自动提交再次查询 select @@autocommit3 创建表 tb_userCREATE TABLE `tb_user` ( -- 创建...
2020-04-12 14:52:42
5858
2
原创 mysql分页limit的优化
在我的index_innodb数据库表中有一千万条数据(可以用存储过程添加数据)表结构如下:部分数据如下:现在进行分页查询:sql语句总耗时(秒)(从第10页查询)SELECT * FROM index_innodb LIMIT 100,100.018 sec(从第5万页查询)SELECT * FROM index_innodb LIMIT 5000000,...
2020-03-15 22:54:01
123
原创 数据库用户,角色,授权,视图
授权与收回sql中使用grant和revoke语句向用户授予或收回对数据的操作权限。1.1 授权(grant)语法: grant 权限 on 数据的(库、表、列)to 用户 【with grant option】。使用者:数据库管理员(DBA)或者数据库的创建者或已经拥有该权限的用户都可以使用grant语句。“关于【with grant option】”如果授权语法中含有【with g...
2020-03-13 23:44:24
1693
原创 深入理解HashMap
HashMap是基于HashTable的映射接口实现,它提供所有的map操作允许key或者value为nullHashMap基本和HashTable相似,只是HashMap是unsynchronized and permits nullsHashMap实例对象有两个参数影响性能,初始容量(initial capacity)和负载因子(load factor)。capacity是HashTa...
2020-03-01 23:16:25
100
原创 深入理解map接口,HashMap
根据查询map接口源码,自己翻译了一些重要注解:map是一个能将键映射给值得对象map不能包含两个相同的键每个键最多映射到一个值有三种方法看待map接口4.1 看做key的集合4.2 看做value的集合4.3 一组键值对映射对于Map的实现,像TreeMap要确保其顺序的特征可变对象不能做key,比如map对象本身不能做为key,但是可以做为value所有的实现类都应该有两...
2020-03-01 21:37:19
2200
原创 final关键字
final:英文意思为最终的,不可更改的。在java语言中,通常指“不可改变的”,不想改变可能出于两种理由:设计或效率。final一般用于数据、方法、类。特殊的还可以用在参数中。1. final用于数据public class Final { public static final int ABC_DEF = 888; public static Random rand...
2020-02-29 16:49:49
75
原创 java向上转型
创建父类(狗类)public class Dog { public void play(){ System.out.println("狗玩耍"); } static void call(Dog dog){ dog.play(); }}创建狗类的子类(大黄狗)public class DaHuang extends Dog {...
2020-02-29 15:30:02
100
原创 java代理(非设计模式)
这里所说的代理并非是设计模式中的代理,只是继承和组合的公用。比如一个商家Shop卖书然后找了个代理Me帮他卖书代码如下:创建商店类public class Shop { void book1() { System.out.println("sell book1"); } void book2() { System.out.print...
2020-02-29 12:37:06
85
原创 父类与子类的初始化顺序
1. 构造器没有参数创建爷爷类public class GrandFather { public GrandFather() { System.out.println("爷爷"); }}创建父亲类public class Father extends GrandFather { public Father() { System.o...
2020-02-29 11:39:46
860
原创 什么是死锁,如何避免
原因:两个线程互相等待对方释放锁的状态public class DeadLockDemo { /** A锁 */ private static String A = "A"; /** B锁 */ private static String B = "B"; public static void main(String[] args) { ...
2020-02-28 21:04:46
79
原创 面试之枚举
java5新特性与switch绝配,可以当做一个特殊的类。public enum Demo1 { /*人民币*/ ONE,TWO,FIVE,TEN,TWENTY,FIFTY,HUNDRED;}public class Demo2 { Demo1 rmb; public Demo2(Demo1 rmb) { this.rmb = rmb; ...
2020-02-28 17:35:30
106
原创 数组的可变参数列表
可变参数列表解决参数个数或者类型未知的场合由于Object是顶级父类。所以可以用Object[] args 作为参数Java SE5之前是没有可变参数的,所以我们通常这样创建数组public class Demo1 { static void print(Object[] args){ for (Object obj :args){ Syste...
2020-02-28 17:19:02
157
原创 构造器调用构造器
public class Dog { public Dog(){ this(11); System.out.println("dog"); } public Dog(int a){ System.out.println("this"); } public static void main(String[] a...
2020-02-28 14:44:19
550
原创 面试之drop truncate delete 之间的区别联系
1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除。 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚。 3、执行的速度上,drop>truncate>delete truncate语法:TRUNCATE TABLE "表格名...
2020-02-26 20:45:07
328
原创 面试之switch后面能跟什么数据类型
switch后面能跟什么数据类型?网上有这样的回答:在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。从Java5开始,java中引入了枚举类型,即enum类型。从Java7开始,exper还可以是String类型。**测试**public class Demo1 { public static v...
2020-02-26 20:32:30
2126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人