自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟在路上

走好每一步,将一些学习感悟记录和分享

  • 博客(89)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 java知识盲点记录与补充

2020.7.8栈内存和堆内存:栈内存:存储局部变量。使用完立消失。堆内存:存储实体,对象。用完不会立消失,会在垃回收器空闲时回收。public class TestJava{ public static void main(String[] args){ int i[] ={10,20,30}; System.out.println("修改前的值"+i[1]); exchange(i); System.out.println("修改后的值"+i[1]); //动态初.

2020-07-08 22:50:38 229

原创 spring里面到底什么是配置类?

spring配置类源码解析

2023-01-03 23:42:42 318 1

原创 spring启动过程详解

bean的扫描和启动过程

2022-12-28 15:59:17 143

原创 spring用java config的方式开启事务

java config 可以这样写事务只需要注入getDataSourceTransactionManager这个bean,并且加上@EnableTransactionManagement即可。这里用了阿里的德鲁克的数据源。如何使用呢,在DAO层直接使用@Autowrid注入即可使用事务,在service层,加上@Transactional注解即可......

2022-06-25 11:19:46 466

原创 HashMap和ArrayList的扩容机制

ArrayList的的扩容机制什么时候扩容?程序员可以通过ensureCapacity()方法来动态指定容量,如果超出则会由ArrayList自动扩容;ArrayList自己是通过来动态扩容ensureCapacityInternal方法来实现private void ensureCapacityInternal(int minCapacity) { if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {

2022-05-25 10:32:27 832

原创 java lambda表达式、方法接口的来龙去脉

问题描述有这样的需求,我们能够不改变代码时候,通过增加代码扩展功能,通常可以定义一个接口,通过实现接口扩展功能。如下例子:定义接口:package lambatest;public interface Animal { String eat();}实现接口package lambatest;public class CatImpl implements Animal{ @Override public String eat() { return "

2022-05-16 19:36:25 118

原创 java反射总结

Class类中Medthod、Filed、Constructor的方法都有Declare,这跟不加declare有什么区别,我们看一下源码定义:以获取Constructor对象的方法为例看一下:@CallerSensitivepublic Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException {

2022-05-13 16:08:33 134

原创 java注解总结

文章目录元注解Java自带的标准注解自定义注解lang下annotation包结构如下:元注解@Documented 是否生成javadoc该注解没有参数,无需赘述@Retention 生效时机源码定义如下:@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Retention { RetentionPolicy value();

2022-05-10 22:50:08 220

原创 java泛型知识总结

文章目录泛型类泛型接口泛型方法定义类型擦除编译期类型检查参考文章泛型类<>中的符号是代表属性类型public class GenericTest<K,V,L> { private K k; private L l; private V v; public void setK(K k) { this.k = k; } public void setL(L l) { this.l = l;

2022-05-10 21:43:27 324

原创 从Integer说起

从Integer说起为什么基本数据类型的封装类类型打印出来不是对象的hashcode(地址,但不是真正的地址)?而是他的值。原因是Integer重写了toString方法,我们到源码看一下Integer位于java.lang.Integer#toString(int),方法定义如下:public static String toString(int i) { if (i == Integer.MIN_VALUE) return "-2147483648"; int s

2022-05-07 00:45:21 1036

原创 RentrantLock与AQS详解

RentrantLock与AQS详解基本概念对应源码里面的类,可以理解这些基本概念,如下:队列同步器(同步器):AbstractQueuedSynchronizer(AQS)自定义同步器:java.util.concurrent.Semaphore.Sync、java.util.concurrent.locks.ReentrantLock.Sync等同步组件:ReentrantLock、Semaphore、CountDownLatch等如何实现ReentrantLock?ReentrantLo

2022-05-02 21:27:49 811

原创 一文看完最详细的线程创建方式

我们都知道新建线程有三种方式,分别是:继承Thread类;实现runnable接口;实现callable接口;由于各种方式的写法多样,有时候会造成初学者的困扰,通过本文你可以完整学习到创建线程的各种方式。这是关于lambda表达式的基础知识,可以先不看,请往下阅读,如有问题回过头来再看。http://www.codebaoku.com/it-java/it-java-224741.html继承Thread1、最初级的写法public class ThreadTest exte

2022-04-15 13:36:11 403

原创 对象锁升级的过程详解

1、java对象的内存布局一个java普通对象在内存中分为4部分:Markword主要记录对象的锁状态class pointer指向对象字节码的指针instance data实例数据paddingjvm设计时对象所占大小要被8整除,要是位数不够需要加padding2、对象布局的查看使用JOL类可以查看对象的内存布局,maven引入如下依赖即可: <dependency> <groupId>org.openjdk.jol&

2022-04-14 09:47:28 803

原创 springboot自动装配初探

文章目录自动配置源码分析@SpringBootApplication@SpringBootConfiguration@Configuration:spring的基础组件@EnableAutoConfiguration:往下看,发现自动导包@AutoConfigurationPackage:自动配置包@Import({AutoConfigurationImportSelector.class}):自动配置导入选择器?@ComponentScan扫描主启动类同级别的包@ConditionalOnClass({R

2021-05-23 11:55:08 197

原创 一文了解nginx和tomact

前置的内容:学习过javaee内容的话就能更深理解Application server的意义和servlet的作用,进而理解tomact。静态资源如doc,jpg,pdf等内容,客户端请求这些内容一般由nginx完成,也就是http 服务器。始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端。动态资源由servlet动态生成的一些html页面,servlet就是提供一些doGet,doPost方法,然后Servlet本身无法实例化这些方法,需要一个servlet容器来完成实例化,也就是m

2021-04-23 09:21:59 153

原创 反射设置属性值,调用方法和调用构造方法

获取字节码对象首先获取类的字节码对象,有三种方式,这里记录最常用的一种;Class aClass = Class.forName("com.lijugang.www.test02.Product");//获得类的字节码文件实例化,调用构造方法newInstance()Object o = aClass.newInstance();//对象实例化getDeclaredConstructor()获得Constructor对象,使用Constructor对象的newInstance()

2021-04-17 11:31:47 260

原创 linux环境变量相关

文章目录shellsource 与 export的到底是啥?.bash_profile和.bashrc的区别:shell用户输入的命令等是如何被操作系统内核所听懂呢?靠shell(bash,shell的一种),也就是shell是跟内核打交道的。当输入ll时候,环境变量通过PATH去找ls命令的路径,解释给内核听。如果没有PATH,shell就不知道去找这个命令执行的地方(可以理解为程序安装目录),这个这个PATH=/bin!也就是linux默认的一些程序执行的位置。当按下ll的时候,shell执行.b

2021-04-09 16:00:09 125

原创 阿里开源工具dataX使用问题总结

使用datax同步数据报错信息提示如下:配置的ip/port/database/jdbc错误,无法连接。———这个仔细检查了也没有啥问题:json中配置:jdbc:postgresql://localhost:5432/cnop配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。——用户名和密码也没问题。具体错误信息为:java.sql.SQLException: No suitable driver found for jdbc:postgr

2021-04-09 08:58:40 2660

原创 Hibernate中自动创建表的一些疑问

按照Hibernate的说明:update:只是更新,没有就创建create: 每次都是新创建create-drop: 用完就会删除表但实际使用过程中,发现create能自动创建表,update只能更新,无法创建表。<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.

2021-03-29 10:37:57 151 1

原创 对象序列化

package test01;import java.io.*;public class serializableDemo{ public static void main(String[] args) throws IOException, ClassNotFoundException { //创建对象 Product product = new Product(); //给属性赋值 product.setPname("香香

2021-03-27 16:17:31 80

原创 hibernate ---DTD的详解

XML 文档构建模块所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:元素 <!ELEMENT hibernate-configuration (session-factory,security?)><!ELEMENT 元素名称 类别>属性 <!ATTLIST property name CDATA #REQUIRED><!ATTLIST 元素名称 属性名称 属性类型 默认值>实体<!ENTITY

2021-03-27 15:58:48 247 1

原创 hibernate的初探

package test01;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import java.util.HashMap;public class TestMain { public static void main(String[] args) { //1.读取hibernate.cfg.xml的配

2021-03-27 15:57:39 76

原创 RESTful的一次理解(对状态转移的认识)

RESTful中午全称:(资源)表现层状态转移英文全称:(Resource)Representational State Transfer先从名字理解起来,REST省略了资源这个词,这里加上方便理解。将词分割进行理解,分别如下:资源:服务器上的实体,例如图片,文本文件,视频等,要有个唯一标识。在Web中这个唯一标识就是URI(Uniform Resource Identifier)。表现层:也就是格式,json呢,xml格式呢,还是jpg格式呢。资源的表述包括数据和描述数据的元数据,

2021-03-27 14:47:48 524 2

原创 继承和多态再一次理解

继承1.java语言中子类继承父类都继承那些数据?私有数据不支持继承。构造方法不支持继承。其他数据都可以继承。2.java中任何类都默认继承Object类,并且任何一个类都有Object的特征。3.什么是方法重写?当父类中的方法无法满足当前子类的业务需求的时候,子类有必要将父类中继承过来的方法进行重写编写。这叫做方法的重写,overwrite。回忆下重载是什么?4.满足什么条件的时候会发生方法的重写呢?方法重写发生在具有继承关系的父子俩之间。方法样子长的一样。**访问权限不能更低

2021-03-07 19:47:24 1921

原创 this、static、static和super关键字的详细解释

thisthis是一个引用,this是一个变量。this变量中保存了内存地址指向了自身,this存储在jvm堆内存java对象的内部。谁调this,this就是谁当一个行为/动作的执行过程中需要对象参与,那么这个方法一定要定义为实例方法,不能带static修饰。1、static修饰的变量,执行过程不需要对象。因此static中不能使用this。2、用来区分局部变量和实例变量的时候this不能省略;3、this可以使用在实例方法中,代表的是当前对象【this.】4、this可以使用在构造方法中,通

2021-03-07 17:09:58 397 1

原创 一文读懂java中方法的参数传递

结论:方法调用的时候涉及到参数传递的问题,实际上传递的是变量中具体的值;首先看两个例子:1.传递参数中保存的是一个字面值代码如下:class Test01 { public static void main(String[] args) { int i = 10; add(i); System.out.println("main方法中i的值是:"+i);//10 } public void static add(int i){ i++; System.out.p.

2021-03-07 12:04:00 158

原创 jvm内存分析

1.方法调用的时候所需的内存空间在栈内存中分配,称为压栈。方法执行结束后,栈内存释放,称为弹栈。2.方法区内存片段和整个类代码片段都被存储到方法区中,在类加载的时候在些代码片段会载入。3.new运算符创建的对象,存储在堆内存中,对象内部有实例变量,所以实例变量也存储在堆内存中;4.静态变量存储在方法区内存中。5.三块内存区域中变化最频繁的是方法区内存,最先有数据的是方法区内存,垃圾回收主要针对的堆内存;6.垃圾回收机制什么时候对java对象进行回收?1)当堆内存的java对象变成垃圾数据的时候.

2021-03-05 22:42:26 952 2

原创 PrintStream和PrintWriter的理解

java的标准输入流是什么?是InputStream,正确。那么java的标准输出流是什么?是OutputSteam?No!而是PrintStream。因为标准输入输出流是System类的定义,静态成员为,in是InputStream类型,对应的是标准输入流,err和out都是PrintStream对象,out对应的是标准输出流。此流默认输出在控制台,也可以重定向输出位置,例如txt文件中:下面是System中的定义: public static final InputStream in = n

2021-03-03 17:04:26 235 1

原创 git回顾和总结(一)

2021-02-04 09:52:31 84

原创 linux文件系统复习和总结

1.文件系统相关知识梳理2.相关命令2.1 blkid查看当前被格式化的设备,下面结果显示的意思是sda1,sda2是物理硬盘,TYPE是代表文件系统的类型。UUID为系统中的存储设备提供唯一的标识字符串。/dev/sda1: UUID="3cebc76f-8b3d-47a2-a578-97c734921bcb" TYPE="xfs" /dev/sda2: UUID="44SQbo-7y9c-uOHS-rzJ0-XZkA-L38v-5AniPP" TYPE="LVM2_member" /dev

2021-01-12 16:59:22 228 1

原创 df多条件筛选踩的坑

使用多条件筛选df,使用and连接,如下:df1 = df1[df1['网元ID'] == netid and df1['cellId'] == cid]df2 = df2[df2['网元ID'] == netid and df2['cellId'] == cid]结果报错,如下:修改为使用&连接,运行OK。如下:df1 = df1[(df1['网元ID'] == netid) & (df1['cellId'] == cid)]df2 = df2[(df2['网元ID'] ==

2020-12-14 09:41:50 3998

原创 vi命令回顾和记忆

2020-11-17 09:17:27 106

原创 深度学习入门的一些文章

对张量的理解:shape参数的个数应为维度数,每一个参数的值代表该维度上的长度。https://blog.csdn.net/qq_35632833/article/details/103649578?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-bl

2020-11-15 21:57:44 182

原创 JAVA是如何获取和设置线程名称的(源码解析)

Thread构造方法是如何生成默认线程名称的?无参构造中调用init方法,init的第三个参数传的是一个字符串name,实参是"Thread-" + nextThreadNum(),这个nextThreadNum()方法返回的是一个int类型的整数,也就是调用一次num加1。 public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0); } private static int thread

2020-09-19 23:27:55 320

原创 IO中编码方式的详解

为什么存在字节流和字符流? String s = "中国"; byte[] bytes = s.getBytes(); System.out.println(Arrays.toString(bytes)); //[-28, -72, -83, -27, -101, -67] byte[] bytes1 = s.getBytes("GBK"); System.out.println(Arrays.toString(

2020-09-12 15:18:18 562

原创 python特殊方法实践__len__,__getitem__

对特殊方法的初步理解,跟Java中定义了接口,实现类中提供方法的具体实现有点类似。特殊方法可以用在类对象上。可以让对象有列表一样的操作。'''生成56张牌,然后完成取和迭代操作'''import collectionsfrom random import choice Card = collections.namedtuple('Card',['rank','suit'])class FrenchDeck: #牌的大小 ranks = [str(n) for n in rang

2020-08-22 15:19:12 372 1

原创 集合相关知识梳理

上图直观的显示了集合的整体结构。Collection有boolean add()方法、boolean remove()方法、void clear()方法、boolean contains()方法 boolean isEmpty()方法,类似python的list,set。迭代器底层实现原理定义在Colletion接口中,iterator()返回一个接口。Iterator<E> iterator();具体实现在ArrayList类中,如下: public Iterato.

2020-08-05 22:57:41 228

原创 自定义异常的实现

异常信息是如何打印出来的呢?我们在异常类中定义一个带参构造方法,使用super继承父类的构造方法,然后就可以使用getMessage或者printStackTace来显示异常信息了。public ScoreException(String message){ super(message);}我们跟踪看一下在父类中如何实现打印信息的,首先看Expection类,可以看到message也是继承的,如下: public Exception(String message) {

2020-08-04 23:07:31 1045

原创 python日常积累

1.先使用 ExcelFile 读成 xlsx 。2.然后使用使用 read _ excel 读成 df ,最后进行需求实现。为什么要这样做?目的是步骤1通常初始化一次就可以,但步骤2可能需要多次进行,因为我们通常需要处理的 excel 包含很多个 sheet ,步骤2可以指定要处理那个 sheet 页。如果不这样处理,直接将 file, sheetname 传入 read _ excel ,每一次处理都会耗费很多时间。使用例子如下:xlsx = pd . ExcelFile (file1_ pat

2020-07-26 19:56:52 286

原创 分别使用继承、多态、抽象类和接口方式实现动物类需求

继承实现问题多态实现问题:父类本身可能是一个具体事务,例如动物类。所以上面的多态的实现是有问题的。下面使用抽闲方式实现。抽象实现总结问题接口实现总结...

2020-07-12 20:07:17 1186

cctrialsetup.exe

可用于清理Windows注册表清理,亲测非常好用!轻量级的应用,会将无效的注册表清理,尤其是卸载了软件但没有清理掉注册表,下一次安装同样的软件会出现问题。

2020-05-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除