
编程语言
文章平均质量分 64
编程语言相关
墨_风
一个菜鸡码农分享一些学习中的笔记或者问题的解决方法,如有错误,还请评论指正。
展开
-
spring boot -- Transactional事务的相关
Spring的事务代理通常是通过Java动态代理或CGLIB动态代理生成的,这些代理要求目标方法是公开可访问的(public)。私有方法无法被代理,因此事务将无效。spring事务的源码,事务底层使用了aop,也就是通过jdk动态代理或者cglib,生成了代理类,在代理类中实现的事务功能。事务管理是基于动态代理对象的代理逻辑实现的,那么如果在类内部调用类内部的事务方法,这个调用事务方法的过程并不是通过代理对象来调用的,而是直接通过this对象来调用方法,绕过的代理对象,肯定就是没有代理逻辑了。原创 2024-04-29 17:54:52 · 411 阅读 · 0 评论 -
复制对象非空值到另一个对象中
平常修改某些信息的时候需要检查此值是否为空,不为空的话才对其赋值修改,但当属性过多时,这个操作就会变得很烦。此工具类作用就是简化其繁琐的操作。原创 2023-10-08 09:53:08 · 422 阅读 · 0 评论 -
python爬虫--获取图库的图片
因为是动态加载,故用模拟浏览器获取,edge浏览器。原创 2022-11-15 21:26:42 · 76 阅读 · 0 评论 -
python --人工智能专家系统---学生学习情况
前言此实验还不太完整,就是简单地用于交作业。后期有时间会修改具体逻辑。如果有什么错误,请评论指出。代码"""1.信息库2.数据库 (1) 兴趣 (2) 行为 (3) 成绩"""check_init = ['100-80分', '79-60分', '习惯差', '习惯好', '玩游戏', '看书籍', '看漫画', '玩手机', '打篮球', '测数独', '做实验', '敲代码', '在自学', '勤思考']rule = [ [['100-80分'], '学习情况优秀']原创 2022-05-18 11:37:40 · 1244 阅读 · 0 评论 -
python爬虫--扫描服务器端口
一、前言功能:扫描服务器端口是否开放二、代码import socketimport timen = 10000 # 开始扫描的端口n1 = 40000 #结束的端口while n < n1: sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sk.settimeout(3) try: sk.connect(('ip', n)) print("Server port "原创 2022-02-13 15:58:36 · 915 阅读 · 0 评论 -
python爬虫--获取微信投票中所有选手的票数以及其他详情信息
一、前言功能:爬取微信投票所有选手的信息,绘制成表格。需要手动操作:因为需要微信登录,所以每十几分钟需要手动换一下token二、代码import requestsimport jsonfrom xlwt import *headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0", "token": "tWHfLl3/7m原创 2022-02-13 15:56:21 · 1629 阅读 · 3 评论 -
python爬虫--自动填写问卷
一、前言本爬虫功能主要是模拟浏览器操作,自动填写问卷星。需要手动操作:需要自己下载一下Chrome的驱动,在我前面文章爬虫的模拟浏览器登录有网址二、代码import randomimport timefrom selenium import webdriverdef run(): # 防止被浏览器识别为脚本 option = webdriver.ChromeOptions() option.add_experimental_option('excludeSwitc原创 2022-02-13 15:43:05 · 478 阅读 · 0 评论 -
python爬虫 -- 模拟浏览器获取淘宝商品数据
一、介绍本爬虫功能主要是模拟浏览器操作,获取淘宝ajax数据,爬取一些基本的口红销量与价格。附加功能1:将数据绘制成三种图像(饼状图,柱状图,拟合曲线)。附加工能2:将数据导出为文本和表格。需要手动操作1:第一次爬取数据需要扫码登录一下淘宝,之后就不用了.需要手动操作2:需要自己下载一下edge的驱动,在我前面文章爬虫的模拟浏览器登录有网址二、代码import osfrom lxml import etreefrom selenium import webdriverimport t原创 2022-02-13 15:33:37 · 1148 阅读 · 0 评论 -
Eclipse快捷键
超级常用:CtrI+C:复制Ctrl+V :粘贴Ctrl+X :剪切Ctrl+Z: 撤销Ctrl+Y :反撤销CtrI+S:保存Ctrl+A :全选Ctrl+1 :快速修复Alt+/ :内容提示非常常用:Alt+Down:向下移动代码Alt+Up:向上移动代码Shift+ Enter:向下插入行Ctrl+ Shift+Enter:向上差入行Ctrl+D:删除选中行Ctrl+O:显示outlineCtrl+ Alt+Down:向下复制行Ctrl+ Shift+O:批量原创 2021-10-16 12:30:31 · 101 阅读 · 0 评论 -
java-Swing的简单使用 -- 学生信息管理系统
简单介绍swing的使用原创 2023-09-13 15:49:01 · 522 阅读 · 0 评论 -
java装了1.8,更换成11后,-version还是显示java8的解决方法
一、jdk的安装及环境变量的配置,详见https://blog.youkuaiyun.com/mocoll/article/details/117126197二、具体更改步骤:将JAVA_HOME:的路径更改为11的相关路径,例如:D:\Develop\JAVA\jdk11此时查看版本:Java -version,如果是1.8的版本,就把系统path路径的%JAVA_HOME%\bin;放到最前面。原因可能是因为你安装过oracle,oracle也带有jdk,所以当你运行Java -version其实查看的是O原创 2021-09-09 23:36:22 · 7938 阅读 · 1 评论 -
java异常 — — 自定义异常
三、自定义异常3.1、概述为什么需要自定义异常类:Java中不同的异常类分别表示看某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,,这些异常很可能在IDK中没有定义过,例如年龄负数问题,考试成绩负数问题什么是自定义异常类:在开发中根据自己业务的异常情况来定义异常类。自定义一个业务逻辑异常:RegisterEx原创 2021-08-31 12:31:24 · 2046 阅读 · 0 评论 -
java异常 — — 异常的处理
二、异常的处理Java异常处理的五个关键字: try、catch、finally、throw、throws2.1、抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不台法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者。在java中,提供了一个throw关键字,它用来抛出一个指定的异常对象。抛出异常后:① 创建一个异常对象。封装一些提示原创 2021-08-31 12:28:08 · 11308 阅读 · 0 评论 -
java异常 — — 异常简介
一、异常1.1、概念异常,就是不正常的意思。在程序中的意思就是:● 异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了编译不通过不会产生字节码文件,根本不能运行。1.2、异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:Java.lang原创 2021-08-31 12:20:32 · 149 阅读 · 0 评论 -
java— — Debug追踪
Debug追踪使用IDEA的断点调试功能,查看程序的运行过程① 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序,(每个方法的第一行, 哪里有bug添加到哪里)② 点击Debug运行模式执行程序:f8 : 逐行执行程序f7 : 进入到方法中shift+f8: 跳出方法f9 : 跳到下一个断点,如果没有下一个断点,那么就结束程序ctrl+f2 : 退出debug模式停止程序Console : 切换到控制台...原创 2021-08-28 08:50:06 · 214 阅读 · 0 评论 -
java集合 — — Map集合
十、Map集合10.1、概述现实生活中,常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一对应的关系,就叫做映射。Java提供了专门的集台类用来存放这种对象关系的对象,即java.util.Map接口。接口Map<K, V>类型参数:K - 此映射所维护的键的类型V - 映射值的类型将键映射到值的对象,一个映射不能包含重复的键:每个键最多只能映时到一个值。Map接口下的集合与collection接口下的集合的对比:● Collecti原创 2021-08-28 08:50:01 · 1604 阅读 · 0 评论 -
java集合 — — Collections
九、Collections9.1、常用方法java.utils.Collections是集合工具类,用来对集合进行操作,部分方法如下:public static <T> boolean addAll(collection<T> C,T... elements);//往集合中添加一些元素。public static void shuffle(List<?> list);//打乱顺序,打乱集合顺序。public static <T> void sort(原创 2021-08-28 08:49:54 · 105 阅读 · 0 评论 -
java集合 — — set集合
八、set集合8.1、概述java.util.set接口和java.util.List 接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比collection接口更加严格了。与List接口不,同的是,set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。Set集合有多个子类,java.util.HashSet、java.uti1.LinkedHashset等。提示:Set集合取出元素的方式可原创 2021-08-28 08:49:48 · 409 阅读 · 0 评论 -
java集合 — — List集合及其子类
六、List集合6.1、概述java.util.list接口继承自collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。List接口特点:● 它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。 那么集合中,元素的存储就是按照11、22、33原创 2021-08-28 08:49:35 · 825 阅读 · 0 评论 -
java集合 — — 数据结构
具体请看数据结构笔记五、数据结构5.1、数据结构有什么用?当你用看java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。java是面向对象的语言,就好似自动档轿原创 2021-08-28 08:49:28 · 145 阅读 · 0 评论 -
java集合 — — 泛型
三、泛型3.1、泛型概述在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。提示:泛型是数据类型的一部分,我们将类名与泛型合并一起看做数据类型。3.2、泛型的定义和使用我们在集合中会大呈使用到泛型,这里来完整地学习泛型知识。泛型,用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数进行传递。3.2.1、定义和使用含有泛型的类定义格式:原创 2021-08-28 08:49:15 · 1081 阅读 · 0 评论 -
java集合 — — lterator迭代器
二、lterator迭代器2.1、Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口。java.util.Iterator.Iterator 接口也是Java集合中的一员,但它与Collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。想要遍历Collection集合,那么就要获取该集合迭代器完原创 2021-08-28 08:49:05 · 595 阅读 · 0 评论 -
java集合 — — Collection集合
一、Collection集合1.1、概述集合的作用:● 集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们的区别:● 数组的长度是固定的,集合的长度是可变的。● 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。 而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。1.2、集合框架JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此原创 2021-08-27 19:00:13 · 136 阅读 · 0 评论 -
java — — 包装类
五、包装类5.1、概述Java提供了两个类型系统,基本类型\与引用类型\,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:包装类:基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据可以使用一个类 基本类型的数据装起来,在类中定义一些方法这个类叫做包装类,我们可以使用类中的方法来操作这些基本类型的数据5.2、装箱与拆箱基本类型与对应的包装类对象之间,来回转换的过程称为原创 2021-08-27 18:53:47 · 175 阅读 · 0 评论 -
java — — StringBuilder类
四、StringBuilder类4.1、字符串拼接问题由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。字符串缓冲区支持可变的字符串。因为String 对象是不可变的,所以可以共享。对比:4.2、构造方法根据StringBuilder的API文档,常用构造方法有2个:public StringBuilder();//构造一个空的StringBuilder容器。原创 2021-08-27 18:47:32 · 289 阅读 · 0 评论 -
java — — System类
三、System类3.1、概述java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文中,常用的方法有:public static long currentTimeMillis();//返回以毫秒为单位的当前时间。public static void arrayCopy(object src,int srcPos, object dest,int destPos,int length);//将数组中指定的数据拷贝到另一个数组中。原创 2021-08-27 18:42:19 · 214 阅读 · 0 评论 -
java — — 日期时间类
二、日期时间类2.1、Date类概述:java.util.Date类表示特定的瞬间,精确到亳秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把亳秒值转成日期对象。 ● public Date() :分配Date对象并初始化此对象,以表示分配它的时 间(精确到毫秒)。 ● public Date(long date) :分配Date对象并初始化此对象,以表示 自从标准基准时间(称为“历元( epoch )”,即1970年1月1日原创 2021-08-27 18:38:17 · 583 阅读 · 0 评论 -
java — — Object类详解
一、Object类1.1、概述java. lang .Object类是java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类,那么默认则继承自Object类根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。● public string toString() :返回该对象的字符串表示。● public boolean equals(object obj) :指示其他某个原创 2021-08-27 18:27:11 · 761 阅读 · 0 评论 -
java面向对象基础 — — 多态性
四、多态性4.1、概述面向对象三大特征:封装性、继承性、多态性。extends继承或者implements实现,是多态性的前提。4.2、多态的格式与使用代码当中体现多态性,其实就是一句话: 父类引用指向子类对象。格式:父类名称 对象名 = new 子类名称();或者: 接口名称 对象名 = new 实现类名称();4.2、多态中成员变量的访问特点访问成员变量的两种方式:① 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找② 间接通过成员方法访原创 2021-08-27 18:19:51 · 342 阅读 · 0 评论 -
java面向对象基础 — — 接口
三、接口3.1、举例与概述生活中的接口举例:接口:就是一种公共的规范标准。只要符合规范标准,就可以大家通用。电脑的接口举例:概述:多个类的公共规范3.2、接口的定义基本格式接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。定义一个接口的格式:public interface 接口名称 {//内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是: . java --> .class接口包含内容:如果是原创 2021-08-27 18:08:22 · 137 阅读 · 0 评论 -
java面向对象基础 — — 抽象类
二、抽象类2.1、抽象的概念如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法。2.2、抽象方法和抽象类的定义格式抽象方法:就是加上abstract关键字, 然后去掉大括号,直接分号结束。抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。2.3、注意事项① 抽象类不能创建new抽象类对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。理解: 假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方 法体,原创 2021-08-27 17:59:11 · 117 阅读 · 0 评论 -
java面向对象基础 — — 继承
一、继承1.1、概述面向对象的三大特征:封装性,维承性。多态性。继承是多态的前提,如果没有继承,就没有多态。图解:继承主要解决的问题就是: 共性抽取 。1.2、继承的格式在继承的关系中,子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是讲师,那么“讲师就是一个员工”定义父类的格式: (一个普通的类定义) public class 父类名称{ // ...}定义子类的格式: public class 子类名称 extends 子类名称 { // .原创 2021-08-27 17:57:30 · 121 阅读 · 0 评论 -
AJAX基础
一、AJAX基础概念1.1、AJAX概念ASynchronous JavaScript And XML 异步的JavaScript和XML,Alax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用Ajax) 如果需要更新内容,必须重载整个网页页面。用于提升用户体验1.2、异步和同步在客户端和服务器端相互通信的基础上① 同步客原创 2021-08-26 09:49:59 · 163 阅读 · 0 评论 -
Node.js入门级用法,一些简单介绍与应用
一、Node.js基础1.1、简介简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于Chrome JavaScript运行时建立的一个平台,是一个事件驱动I/0服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快, 性能非常好。1.2、安装1.2.1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/1.2.2、选安装目录进行安装推荐下载LTS版本。完成以后原创 2021-08-25 19:49:47 · 691 阅读 · 0 评论 -
js面向对象开发实例 —— 表单验证
三、表单验证分析:1.手机号码: /^1[3|4151718][0-9]9$/2.QQ:[1-9][0-9]{4,} (腾讯,QQ号从10000开始)3.昵称是中文:^[u4e00-\u9fa5]{28}$JS代码:原创 2021-08-25 19:49:41 · 159 阅读 · 0 评论 -
js面向对象开发实例 —— 用户名验证&面向对象的Tab栏切换
一、面向对象的Tab栏切换功能需求:1.点击tab栏,可以切换效果。2.点击+号,可以添加tab项和内容项。3.点击x号,可以删除当前的tab项和内容项。4.双击tab项文字或者内容项文字,可以修改里面的文字内容。思路:抽象对象: Tab对象● 该对象具有切换功能。● 该对象具有添加功能。。● 该对象具有删除功能。● 该对象具有修改功能。HTML 代码JS代码:笔记中图片丢失了二、用户名验证功能需求:1.如果用户名输入合法,则后面提示信息为:用户名合法,并且颜色为绿色。原创 2021-08-23 10:37:24 · 141 阅读 · 0 评论 -
js面向对象 —— ES6
一、ES6简介什么是ES6 ?ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项脚本语言的标准化规范。ES6实际上是一个泛指,泛指ES2015及后续的版本。为什么使用ES6 ?每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身 也有一些令人不满意的地方。● 变量提升特性增加 了程序运行时的不可预测性。● 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码。二、ES6的新增语法2.1、letES6中新增的用于声明变量的关键字。●原创 2021-08-23 10:37:19 · 342 阅读 · 0 评论 -
js面向对象 —— 正则表达式
一、正则表达式概述1.1、什么是正则表达式.正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换) ,或从字符串中获取我们想要的特定部分(提取)等。其他语言也会使用正则表达式,本阶段主要是利用JavaScript正原创 2021-08-23 10:37:14 · 549 阅读 · 0 评论 -
js面向对象 —— 递归
一、什么是递归?如果一个函数在内部可以**调用其本身,**那么这个函数就是递归函数。简单理解:函数内部自己调用自己这个函数就是递归函数。递归函数的作用和循环效果一样。由于递归很容易发生“栈溢出”错误( stack overflow ) , 所以必须要加退出条件return。二、利用递归求数学题1、求1*2*3…*n 阶乘。2、求斐波那契数列。3、利用递归求:根据id返回对应的数据对象三、浅拷贝和深拷贝1.浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。2.深拷贝拷贝多层,每一级原创 2021-08-23 10:37:06 · 678 阅读 · 0 评论 -
js面向对象 —— 闭包
一、变量作用域变量根据作用域的不同分为两种:全局变量和局部变量。1.函数内部可以使用全同变星。2.函数外部不可以使用局部变量。3.当函数执行完毕,本作用域内的局部变量会销毁。二、什么是闭包闭包( closure )指有权访问另一个函数作用域中变量的函数。---- JavaScript 高级程序设计。简单理解就是, 一个作用域可以访问另外一个函数内部的局部变量。闭包的主要作用:延伸了变量的作用范围。三、闭包案例3.1、面试-----循环注册点击事件。立即执行函数也称为小闭包,因为看立原创 2021-08-23 10:37:00 · 233 阅读 · 0 评论