如何使用JPA 建模


很多同学在使用JPA的时候,每次要对实体建模的时候都分不清JPA的注解用哪一个、注解参数填什么。这主要是由于对两个实体之间的关系的理解不到位,以及不清楚JPA如何描述两个实体之间的关联关系。本文的目的是为了帮助大家重新梳理一遍JPA中的关联映射,用理解代替死记硬背。我会给出两种版本。一种是【精简版】

《Sonny's python》之 协程


学习了生成器以后(额..如果你还没学习,请速速去学😝),我们就可以开始学习什么是协程了。要分清二者的联系去差别😯 —— 松言松语协程什么是协程协程(Coroutine,又名微线程)和多线程一样,都是用来执行某一种计算(任务)的,所以协程是一个消费者,它接受生产者发送的消息并处理。进程/线程/协程

《Sonny's python》之 生成器


你还在为数据生成逻辑和数据的消费逻辑难以分离而苦恼嘛?你还在为生成大量数据而担心内存不足嘛?来用python吧 —— 松言松语生成器从迭代器(Iterator)中循环遍历取出元素来处理,叫做迭代。在python中,定义了__next__方法的类,就是一个迭代器。生成器,是数据的生产者。先说下使用到生

《Sonny's python》之 装饰器


我没有学过太多语言,所以python的装饰器是我见过的最灵活的。—— 松言松语装饰器装饰器的前提顾名思义,装饰类就是用一个装饰函数a来修饰另外一个函数b,使得函数b的功能得到增强。在java(编译型语言)中,增强一个函数可以通过AOP实现,有两种方式:1. 编译期,是通过修改字节码实现,如Aspec

《Sonny's python》之 *args和**kwargs


*args和**kwargs首先,*args和 **kwargs 的命名是可以任意的,也可以随便叫\*vars 或者 \*kws。*args就是可变参数罢了,它以一个数组的形式对外呈现。定义函数的时候,如果不想指定参数的数量,就可以用\*args来替代。def print_numbers(*args

《Sonny's python》第二部分 私有方法


认为python的私有方法是一种“伪私有”,因为它并不是在语言层面提供支持。而是采用了一种巧妙的方式让不该被看见的“隐藏”起来,但实际上我们是可以通过特殊手段突破其限制。私有方法在Java中,表示私有一般有 private/protected/public来表示方法或者变量的可见范围。python中

《Sonny's python》第一部分 基础语法


sonny's python是我2021年学习python时候的笔记。学习的内容主要来自runoob.com 以及 Python教程 - 廖雪峰的官方网站 。笔记主要记录了在学习过程中我觉得重要且值得探索的特性,所以该笔记无法作为一份入门教程而存在,希望以后可以通过它唤醒我们的脑海中关于python

关于Redis不得不说的那些事


概述什么是缓存源头:磁盘IO,超慢!内存分配、寻址、持久化,都影响到了响应时间,进而响应吞吐量系统性能要求,用户体验要求吞吐量、响应时间等。CPU怎么做划分出一块高速缓存,用于存储即将、可能用到的数据,用于数据的高速交换。重点缓存是数据的冗余空间换时间追求速度和吞吐量缓存的分类类型说明举个栗子客户端

《Java并发编程的艺术》第x章 笔记


1 线程间通信线程间是需要通信的,系统中的各个线程进行都有自己的任务,有时候线程间的任务内容可能会有冲突。比如只有一个苹果,但是没有线程的任务都要求咬一口,那么,谁先下嘴呢?线程的通信是有必要的,因为一个大苹果一个人吃,吃一会,歇一会儿,一下子可能吃不完,如果让多个线程多个人来吃,一个人一口,很快就

《Java并发编程的艺术》第四章 笔记


第四章 Java并发编程基础1基本概念1.1什是线程?线程是系统调度的最小单位。一个进程中可以包含多个线程;处理器会在线程上高速切换,就像是多个线程同时在执行。1.2线程的特点线程含有自己的计数器。堆栈、局部变量等属性,并能够访问共享的内存变量。1.3为何使用多线程硬件的快速发展:处理器的性能得到巨