文章目录 Codeiumchat代码生成 Codeium Codeium是基于边缘计算的代码AI工具,提供超过70种编程语言的代码补全、对话、搜索等功能,相当霸道。
在插件栏搜索到Codeium之后,需要科学上网安装,安装完成后会提示注册。注册之后,会弹出一个Token页面,并提供一组密钥,然后回到VS Code,按下Ctrl+Shift+P,输入Codeium:Provi...,并将复制的密钥填入。当VS Code下面出现欢迎字样时,就说明可以正常使用了。
同时,点开左侧的{...}图标,也会看到CHAT和SEARCH中出现了内容,我们就可以跟他对话了。而且具体使用时,并不需要科学上网。
chat Codeium是听得懂中文的,比如我问
有没有什么好的激光雷达检校算法?
他的回答如下,可以说十分靠谱了
有几种常用的激光雷达校准算法可以考虑使用:
点云匹配算法:这种算法使用激光雷达采集到的点云数据进行匹配,将多个扫描周期的点云数据对齐,从而校准激光雷达的姿态和内外参。
地面平面提取算法:这种算法通过分析激光雷达扫描到的点云数据,提取地面平面信息,并利用地面平面的几何特征进行激光雷达的姿态校准。
基于特征点的匹配算法:这种算法通过提取激光雷达扫描到的点云数据中的特征点(例如,角点、边缘点等),并利用这些特征点进行匹配,从而实现激光雷达的校准。
非线性优化算法:这种算法通过建立激光雷达的数学模型,并利用非线性优化方法(如Levenberg-Marquardt算法)来最小化模型与实际观测数据之间的差异,从而实现激光雷达的校准。
这些算法都有各自的优缺点,选择适合你特定需求和数据情况的算法是很重要的。同时,还可以考虑使用开源的激光雷达校准库,例如libpointmatcher和lidar-odom等,它们提供了一些常用的激光雷达校准算法的实现和工具。
代码生成 新建一个test.py文件,在注释中写下想要做的事情,然后Codeium会自动生成相关的代码,还挺像模像样的,唯一美中不足之处在于,他并不会自动导入相应的包。
# 导入科学计算包 import numpy as np # 创建一个函数,可以根据字符串的长度返回随机字符串 def random_str(length): return ''.join(random.sample(string.ascii_letters + string.digits, length)) # 写一个斐波那契数列函数 def fib(n): a, b = 0, 1 for i in range(n): a, b = b, a+b return a 但接下来让他写一个递归的斐波那契数列,就稍微有些无语了,给了个内存爆炸写法
# 写一个递归斐波那契数列函数 def fib2(n): if n == 0: return 0 elif n == 1: return 1 else: return fib2(n-1) + fib2(n-2) 而且复杂的代码任务可能还是比较拉跨的
全部报错信息:
登录异常:Could not read JSON: Could not resolve type id 'com.macro.mall.tiny.modules.ums.model.UmsAdmin' as a subtype of `java.lang.Object`: XXXXXX
nested exception is com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'com.macro.mall.tiny.modules.ums.model.UmsAdmin' as a subtype of `java.lang.Object`: no such class found
解决方法:
去Redis中找到存储空间mall,删除该命名空间;
报错原因分析:
这个错误是突然冒出来的,项目之前启动过,是正常的;
且 nested exception ...可以定位是Redi的原因;
考虑到之前我还启动过其他类似的项目,且Redis的命名空间设置成了一样,导致存储的权限定名称和当前项目不符合,所以不能正常反序列化。
一 简介 使用 pytorch 搭建循环神经网络RNN,循环神经网络(Recurrent Neural Network,RNN)是一类用于 处理序列数据的神经网络架构。与传统神经网络不同,RNN 具有内部循环结构,可以在处理序列数据时保持状态信息。这使得 RNN 在自然语言处理、时间序列预测、语音识别等许多领域中非常有用。
参考链接:循环神经网络(Recurrent Neural Network)
1.1 导包 # 导包 %matplotlib inline import math import torch from torch import nn from torch.nn import functional as F import dltools 1.2 加载数据 1.2.1 加载模块 # Defined in file: ./chapter_recurrent-neural-networks/language-models-and-dataset.md def load_data_time_machine(batch_size, num_steps, use_random_iter=False, max_tokens=10000): """Return the iterator and the vocabulary of the time machine dataset.""" data_iter = SeqDataLoader(batch_size, num_steps, use_random_iter, max_tokens) return data_iter, data_iter.
云盘资源,浩如烟海,但缺乏搜索工具,让无数网友苦不堪言。幸运的是,现在有了强大的网盘搜索引擎,一切问题迎刃而解。轻松找到您需要的文件,快速下载,节省时间。享受便捷的云盘体验,释放您的创造力。无论是工作文档还是娱乐资源,网盘搜索引擎助您轻松搞定。解放您的搜索困扰,开启全新的云盘世界!
[无为盘搜]https://wuweipansou.top/
[小白盘]http://www.xiaobaipan.com/
[搜盘吧]http://www.sopanba.com/
[史莱姆]http://www.slimego.cn/
[热盘搜]http://www.repanso.com
[盘么么]http://www.panmeme.com/
[西部维度]http://wx.haogow.com/
[58网盘]http://www.58wangpan.com/
[56网盘]https://www.56wangpan.com/
[V盘搜]http://www.vpansou.com/
[创业招]http://aizhaomu.com/
[搜度]http://www.sodu123.com/
[59网盘]http://www.59pan.com/
[fastsoso]https://www.fastsoso.cn/
[文件搜]http://wjsou.com/
[51搜盘]http://www.51sopan.cn/
[两仪鸟]http://www.baiduyunsousou.com/
[云铺子]https://www.yunpuzi.net/
[微盘搜]http://www.vpanso.com/
[云搜大师]https://www.xxhh360.com/
[图书盘]http://www.tushupan.com
[读书小站]http://ibooks.org.cn/
[sobooks]https://sobooks.cc/
[小说搜搜]https://www.xssousou.com/
[网盘资源网]https://www.0933.me/
[SoV5]https://www.sov5.cn/
[找云盘]http://www.zhaoyunpan.cn/
[去转盘]https://www.quzhuanpan.com/
[猪猪盘]http://www.zhuzhupan.com/
[下载搜]https://www.xiazaisou.com/
[verypan]http://www.verypan.com/
[专搜java]http://yun.java1234.com/
[6miu]http://baiduyun.6miu.com/
[沐依神器]http://pan.muyi.so/
[云搜]http://www.daysou.com/
[万盘搜索]http://www.wanpan.info/
推荐6个好用的百度网盘资源搜索引擎 挑选标准:免费,大部分不登录可用,但也有个别需要登录查看链接,已备注说明。
1、无为盘搜-好用的影视及学习资源搜索工具 地址:https://wuweipansou.top
查看方式:直接打开
推荐指数:★★★★★
备注:影视、学习等各类资源搜索,度盘、阿里、夸克等,体验好,推荐!
2、优聚搜
地址:https://ujuso.com/
查看方式:不对游客开放,需要登录
推荐指数:★★★★☆
3、学搜搜
地址:http://www.xuesousou.com/
查看方式:直接打开
推荐指数:★★★☆☆
备注:学习资源搜索
4、盘131 - 云盘资源搜索引擎 地址:https://www.pan131.com/
查看方式:直接打开
推荐指数:★★★☆☆
5、56网盘搜索
地址:https://www.56wangpan.net/
查看方式:直接打开
推荐指数:★★★☆☆
6、bdy搜
地址:http://www.bdyso.com/
查看方式:直接打开
推荐指数:★★★☆☆
分享 6 个专业网盘搜索引擎,支持百度网盘、阿里云盘、蓝奏云盘、夸克网盘、天翼云盘、迅雷云盘等。
全都是免费网站,简单好用,必须点赞收藏!
# 1. 无为盘搜 - 网盘搜索引擎界新星! 地址:https://wuweipansou.top支持网盘:聚合搜索,阿里、百度、夸克、天翼查看方式:免费 免登录 直接使用 支持网盘最全,界面友好,体验佳。
# 2. 千帆搜索 - 资源超丰富的聚合网盘搜索引擎! 地址:https://pan.qianfan.app支持网盘:聚合搜索,阿里、百度、夸克、蓝奏、天翼、迅雷网盘查看方式:需登录、关注公号获取激活码 支持网盘最全,界面简洁,体验较好。
# 3. 奈斯搜索 - 资源超丰富的阿里云盘资源搜索网站! 地址:https://www.niceso.net支持网盘:阿里云盘查看方式:需登录、关注公号获取激活码 简单好用,响应快速,和千帆搜索类似。
# 4. 学霸盘 - 百度网盘学习资料搜索下载神器 地址:https://www.xuebapan.com支持网盘:百度网盘查看方式:直接打开 专注百度网盘资料搜索。
# 5. UP云搜 - 最全阿里云盘资源搜索神器 地址:https://www.upyunso.com支持网盘:阿里云盘查看方式:直接打开 更新快,资源有效率高。
# 6. YaPan 地址:https://pan.ccof.cc支持网盘:阿里云盘查看方式:直接打开 界面只有一个搜索框,极简,快速,比较适合手机使用。
结语 这些网盘资源搜索引擎都很好用,常见的网盘基本都能找到,绝对是资源党的福利。
喜欢本文的话记得关注、收藏、点赞啊!
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【链表相加】,使用【链表】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公司+最近一年+出现频率排序,由高到低的去牛客TOP101去找,只有两个地方都出现过才做这道题(CodeTop本身汇聚了LeetCode的来源),确保刷的题都是高频要面试考的题。
名曲目标题后,附上题目链接,后期可以依据解题思路反复快速练习,题目按照题干的基本数据结构分类,且每个分类的第一篇必定是对基础数据结构的介绍。
链表相加【MID】 题干 首先来一道逆序版,稍微比较好搞一些的,因为链表只能向后遍历:
解题思路 整体思路就是遍历完两个链表进行相加并将结果集放到新的链表上
设置返回链表的链表头,设置进位cnt=0.从头开始遍历两个链表,直到两个链表节点都为空: 每次取出不为空的链表节点值,为空就设置为0将两个数字与cnt相加,就是当前的总和将总和(对10取模)加入新的链表节点,连接在返回链表后面,并继续往后遍历,并用总和对10除获取进位值 如果两个链表都遍历完成,cnt进位还有值,则补充创建一个节点,值为cnt 代码实现 给出代码实现基本档案
基本数据结构:链表
辅助数据结构:无
算法:迭代
技巧:双指针
其中数据结构、算法和技巧分别来自:
10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法技巧:双指针、滑动窗口、中心扩散 当然包括但不限于以上
; import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // 1 先将两个链表反转过来 ListNode p1 = head1; ListNode p2 = head2; // 2 设置结果集以及初始化进位标识符 ListNode dummy = new ListNode(-1); ListNode p = dummy; int cnt = 0; // 3 目标是遍历完两个链表的全部长度 while (p1 !
用java将word转为html文档 1、简介2、添加依赖3、代码示例 1、简介 最近,因项目需要,需要对word文档进行解析拆分,感觉直接解析word有点麻烦,于是想到,先将word转为html文档,然后用jsoup解析html文件更方便,jsoup的使用可以参考相关API,操作简单,类似javascript。
word转html文档方法如下:
一般word文件后缀有doc、docx两种。docx是office word 2007以及以后版本文档的扩展名;doc是office word 2003文档保存的扩展名。对于这两种格式的word转换成html需要使用不同的方法。
2、添加依赖 <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>fr.opensagres.xdocreport.document</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId> <version>1.0.5</version> </dependency> 对于docx格式的文档使用poi进行转换。依赖如下:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.12</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.12</version> </dependency> 3、代码示例 package com.test.word; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.converter.PicturesManager; import org.
1、选中GameObject,点击Window—Animator—Create,双击动画状态机控制器便可打开Animator,下方视频播放杨图标文件为动画。新建AnimatorControllers文件夹,将动画状态机控制器放入
动画状态机控制器存放着所有动画,GameObject Inspector面板Animator—Controller放着哪个状态机,便播放哪个状态机
2、Add Property(属性)—Transform—+添加要控制的对象,右侧将白线拉到合适位置,点左侧第一个“+”添加关键帧(Add KeyFrame),便可修改x、y、z值,拖动白线可查看效果
60为60帧1s,可调整数量。如果原先动画定义1s60帧播放完,改为30帧后会变成2s放完。
3、可添加多个属性,单独给属性添加关键帧方法:将时间线拖到合适位置,直接修改属性数值,系统自动添加关键帧
4、自动录制:
点击红原点,即可开始自动录制。在0s时修改任意数值,并将其改回原数值,便可在0s时添加关键帧
5、Animation的Curve曲线中显示了物体的变化轨迹,可在左侧选中单个元素看它的变化曲线,Shift+鼠标中键可只放大纵坐标
a、每一个点在左右两侧都以一根直线,可右键Broken打断成两根,便可单独控制左右两侧曲线
b、如果想调成匀速变化,将两个控制点,根据要调整的线段在点左侧或是右侧等,右键选择Tangents—Linear,调成直线
c、右键Add Key可增加控制点,根据不同组合自行选择,精确控制控制点对应的位置方法:添加控制点后,在左侧直接修改元素属性值便可达到要求
d、取消Animations—Animation Clips—Inspector的Loop Time,运行场景时便只播放一次动画(预览时可重复播放)
6、Animation Clips和Animator Controllers一同在Window—Animation—create生成,GameObject Inspector面板的Animator—controller要添加Animator Controllers,Window—Animator中要添加的Animation Clips
大家还有什么问题,欢迎在下方留言!
如果你有 技术的问题 或 项目开发
都可以加下方联系方式
和我聊一聊你的故事🧡
1.申请账号获取密钥key
2.申请创建商品,创建价格,创建支付,
//创建商品 public function create_product(){ $_key = self::STRIPE_KEY; $stripe = new \Stripe\StripeClient($_key); $arr = $stripe->products->create([ 'name' => $goods_name, ]); // print_r($arr->id);die; $this->create_price($arr->id,$order_id,$is_source); } //创建价格 public function create_price($product_id,$order_id,$is_source){ //获取订单对应的商品价格 $goods_price = \db('order')->where('id',$order_id)->value('pay_money'); $_key = self::STRIPE_KEY; $stripe = new \Stripe\StripeClient($_key); $price_arr = $stripe->prices->create([ 'unit_amount' => $goods_price*100, //'unit_amount' => 1*100, 'currency' => 'usd', 'tax_behavior' => 'exclusive', //'recurring' => ['interval' => 'day'], 'product' => $product_id, ]); //print_r($price_arr->id);die; $this->actionStripe($price_arr->id,$order_id,$is_source); } /** * 创建stripe支付 */ public function actionStripe($price_id,$order_id,$is_source) { $_key = self::STRIPE_KEY; $domain = $this->request->domain(); //如果是AI订阅和AI作品打样的话 if ($is_source == 8 || $is_source == 9){ $cancel_url = 'https://ai.
python操作文件 open的常用参数: 1.要读取的文件名字或者文件路径 2.文件打开的模式 r:只读模式 rb:以二进制的格式去打开文件 3.encoding:用来指定文件的编码格式(使用rb的时候,不需要加该参数) #打开文件 f = open("text.txt","r",encoding="utf8") #f文件的句柄 content = f.read() print(content) #关闭文件 f.close() 读取不在当前文件下的文件: #绝对路径 路径前面加r 防转义 open(r"C:\Users\xiaosun\PycharmProjects\ningmeng_test\Day01\Day01_test.py","r",encoding="utf8") #读取同级目录下的图片 open("文件名","rb") #文件的写入操作 "a" 以追加写入的模式打开文件,如果打开的文件不存在,不会报错, #会新增一个文件 "ab"以二进制编码格式打开文件,其余同上 #"w" 以覆盖写入的模式打开文件,其余同上 #wb"以覆盖二进制的编码格式打开文件,其余同上 #注意: a,ab,w,wb 只能写入内容,不能读取内容 #写入内容 句柄 f.write("xxx") 文件读取的方法: read:
读取文件中所有的内容 read() 中存放的字符数 可以用数字来代表
readline():每次读取一行内容
readlines():按行读取所有的内容,每一行作为一个元素放到一个列表中
一、添加文件夹右键菜单项
1.打开Windows注册表编辑器。按下Win+R组合键,输入regedit,点击确定。
2.在注册表中,找到以下路径:
HKEY_CLASSES_ROOT\Directory\shell 3. 参考其他菜单项进行添加,例如添加WebStorm的菜单项:
1)右键shell文件夹,并选择“新建”->“项”,命名为“WebStorm”。
2)将默认项的值改为“Open With WebStorm”,该值即为右键菜单中显示的内容
3)右键“WebStorm”项,新建“字符串值(S)”,名称为“Icon”,数据为webstorm的可执行程序的全路径,例如:
D:\Program Files\JetBrains\WebStorm 2020.1.1\bin\webstorm64.exe 4)右键“WebStorm”项,新建“项(K)”,命名为“command”,将其默认的数据改为全路径加“%1”,都用双引号括起来,例如:
"D:\Program Files\JetBrains\WebStorm 2020.1.1\bin\webstorm64.exe" "%1" 4. 此时添加文件夹的右键菜单项已创建完成,可在文件夹上右键试试看。
同理:如果想要删除某个右键菜单项,在HKEY_CLASSES_ROOT\Directory\shell下找到对应项,删除即可。
二、添加任意空白处右键菜单项
与上边的“给文件夹添加右键菜单项”的步骤相同,区别仅在于
1. 注册表的路径不同,给任意空白处右键添加菜单项的注册表路径是
HKEY_CLASSES_ROOT\directory\background\shell 2. command命令后边的参数变成了“%V”
"D:\Program Files\JetBrains\WebStorm 2020.1.1\bin\webstorm64.exe" "%V" 三、添加文件右键菜单项
与上边的“给文件夹添加右键菜单项”的步骤相同,区别仅在于注册表的路径不同,给文件添加右键菜单项的注册表路径是
HKEY_CLASSES_ROOT\*\shell 其他步骤与“给文件夹添加右键菜单项”的步骤完全相同。
解决方法 使用LFS解决GitHub无法上传大于50MB的文件
LFS简介 Git LFS(Large File Storage)是 Git 的一个扩展,用于管理大型文件,如二进制文件、图像、音频和视频文件等。它的主要目的是解决 Git 对大型二进制文件的版本控制和存储问题。通常情况下,将大型二进制文件纳入 Git 版本控制会导致存储和性能方面的问题,因为 Git 不是为处理这些文件而设计的。
详细步骤 1、Windows下载安装LFS。下面是官网https://git-lfs.com/,在这里下载好后安装,会自动检测电脑的git信息并登录。
在git里用下面命令初始化:
git lfs install
2、找到你的本地仓库,比如我的网址:E:\GitHub\sfssa.github.io,在这个文件夹内点击鼠标右键选择"git bash here",输入下面指令:
git lfs track "*.zip"
这条命令是追踪所有以.zip为结尾的文件,然而当我在追踪时却遇到了问题如下:
这是由于我的配置文件出了问题,输入下面两条命令检查里面的内容有没有重复的:
git config --local --edit
git config --global --edit
输入上述指令会打开一个文件,查看里面的内容有没有重复的,有就删除,保留一个就行,我的当时就是"url"有两个重复了。
之后再次输入命令:
git lfs track "*.db"
我们可以看到:
可以用命令:git lfs track查看:
实际上这是修改了我们的.gitattributes文件,.gitattributes 文件是用来配置 Git 存储库中文件的属性和行为的文件。它可以用来指定如何处理存储库中的文件。为了让它生效,我们需要提交:
git add .gitattributes
git commit -m "描述"
git add test.db (db>50M)
git push
之后就可以在GitHub上看见了。
LFS原理 具体来说,Git LFS将大文件替换为指向远程存储的指针。这些指针存储在Git存储库中,而实际的大文件则存储在Git LFS服务器上。当你执行 git checkout 命令并切换到包含大文件的分支时,Git LFS会根据需要下载这些大文件。这样可以减小Git存储库的大小,提高效率,因为不会在每次 checkout 时都下载所有大文件。
每次遇到与或位移等运算总会懵圈一次,百度明白了之后就忘了,理解不够深刻,不够明确,工作中也很少写,所以记下
无意间翻看之间的代码,发现了一段难以理解的代码。
byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; for (int i = 0; i < bs.length; i++) { int c = bs[i] & 0xFF ; if(c < 16){ sb.append("0"); } sb.append(Integer.toHexString(c)) ; } return sb.toString() ; bs是由一段字符串经过MD5加密后,输出的byte数组。我起初难以理解为什么在接下来的循环中要将bs[i]&oxFF再复制给int类型呢?
bs[i]是8位二进制,0xFF转化成8位二进制就是11111111,那么bs[i]&0xFF不是还是bs[i]本身吗?有意思吗?
后来我又写了一个demo
package jvmProject; public class Test { public static void main(String[] args) { byte[] a = new byte[10]; a[0]= -127; System.out.println(a[0]); int c = a[0]&0xff; System.out.println(c); } } 我先打印a[0],在打印a[0]&0xff后的值,本来我想结果应该都是-127.
但是结果真的是出人意料啊!
-127
129
目录 😘
HTML的局限性
target
什么是CSS? 🫡
CSS语法规范
CSS代码风格 样式格式书写
①紧凑格式
②展开格式
样式大小写
空格规范 CSS的引入方式 🫤
内部样式
外部样式
内联样式
CSS选择器
基本介绍
选择器的分类 标签选择器
类选择器
单类名选择
多类名选择 id选择器
通配符选择器
CSS属性设置
字体属性
font-family
font-style
font-size
font-weight
字体符合属性 文本
文本颜色
文本对其
文本装饰
文本缩进
行间距
创作不易多多支持🥳
HTML的局限性 HTML是一个单纯的家伙, 他只关注我们内容的意义, 比如h1就是一个大标题, p表示这是一个段落, img表示这是一个图片, a表示这个地方有一个连接.
很早的时候, 世界上的网站虽然有很多, 但是他们都有一个共同的特点, 就是丑, 于是就诞生了CSS用来装饰HTML页面.
target 😎 能够理解什么是CSS😘 能够是用CSS基础选择器🥳 能够设置字体样式😶🌫️ 能够设置文本样式😊能够所处CSS的三种引入方式😍 能够使用Chrome或者edge等浏览器调试工具调试样式 什么是CSS? 🫡 CSS也被叫做层叠样式表, 英文全称为: Cascading Style Sheets, 是一种用来表现HTML(标准通用标记语言的一个应用) 或XML 等文件样式的计算机语言, CSS不仅可以静态的修饰网页, 也可以配合各种脚本语言动态地对网页各元素进行格式化处理.
程序猿在世人眼里已经成为高薪、为人忠诚的代名词。 然而,小编要说的是,不是所有的程序员工资都是一样的。
世人所不知的是同为程序猿,薪资的差别还是很大的。
众所周知,目前互联网行业是众多行业中薪资待遇最好的,包括程序员、运营、新媒体和这个行业周边的商务、销售等人员的工资,都是其他行业所不能比拟的。
程序员问科比:你为什么这么成功?
科比:你知道洛杉矶凌晨 4 点的样子吗?
程序员:不知道,不过我知道凌晨 4 点的北京,一般那时候我还没睡,怎么了?
科比:没,没什么......
上面的段子说明了程序员加班的程度,有的人看到这一点就明了了。但这不是唯一的原因。
说回我朋友,他做Java开发也三年多的时间了,在老东家勤勤恳恳工作了三年多,工资也就是从刚开始的8K涨到了12K,天天给我吐槽他的工资低加班那多。今年开始就一直在各种地方找资源,刷面试题,想要“骑驴找马”,所幸在前不久终于找到了一份心仪的工作,薪资也是从12K直接涨到了30K。
我给他比出了大大的羡慕,同样是工作时长,他都30k了我却还是在12K。他给我说,你别看我现在薪资这么高,那几十套面试题我至少刷了七遍以上,八股文也一直在背
我给他比出了大大的羡慕,他给我说,你别看我现在薪资这么高,那几十套面试题我至少刷了七遍以上。
下面就把朋友在背的八股文分享出来,希望对大家的升职涨薪有所帮助
2023最新BATJava必考面试题集锦 2023最新BAT大数据必考面试题集锦 Java后端面试题及答案 JVM面试题及其答案 Java面经 Spring面试题 SpringMVC面试题 SpringBoot面试题 SPringCloud面试题 Tomcat面试题 并发编程面试题 多线程面试题 MySQL55问 乐观锁和悲观锁面试题 Redis面试题 Kafka面试题 Zookeeper面试题 Linux面试题 MyBatis Nginx面试题 memcached面试题 MongoDB 面试题目录汇总 由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。文中资料已整理打包存放网盘,有需要完整版的朋友可以点击下方的名片自取!
关键词:私有化部署、低代码平台 编者按:MyApps低代码平台是低代码领域的知名厂商,致力于此领域已有十余年的深耕经验。为了满足小微企业的特殊需求,推出了全新的低代码平台社区版。这一平台的发展为企业的数字化转型提供了重要支持,让企业能够更轻松地进行应用开发。
一、社区版平台优势
低代码代码快速开发:MyApps低代码平台社区版提供了丰富的可视化组件和预置模板,使用户能够通过拖拽、配置的方式快速搭建应用界面,无需编写复杂的代码,大幅缩短开发周期。自定义扩展能力:平台支持自定义组件和扩展,用户可以根据自身需求,快速构建符合企业特色的定制化功能模块,实现个性化的业务流程和逻辑。多端适配与一体化管理:MyApps低代码平台社区版能够自动适配多种终端设备,包括PC、移动端等,保证应用在不同设备上的良好表现。同时,平台提供一体化的应用管理界面,方便用户集中管理应用的发布、权限设置等操作。数据驱动的分析与决策支持:MyApps低代码平台内置报表引擎,支持制作各类中式复杂报表和响应式报表,帮助用户快速分析和挖掘数据价值,提供数据驱动的决策支持,助力企业实现更精准的业务决策和战略规划。灵活的部署方式:MyApps低代码平台社区版支持私有化部署,用户可以根据实际要求选择在自己的服务器上进行部署,保障数据安全与隐私。异构系统整合:在企业中存在一个普遍的痛点,不同的业务系统之间的数据相互隔离,企业内部数据不互通,为企业增加了不少的软件开发成本及运营成本。 低代码平台的接口引擎,轻松解决了该现象。MyApps低代码平台社区版具备与其他常用软件和系统的高度集成能力。它可以与企业已有的系统(如CRM、ERP等)进行无缝对接,从而实现数据的共享和流程的协同,提升了企业的工作效率。
二、社区版平台支持 天翎上线应用市场,为用户提供了丰富的应用模板选择,以满足不同用户的需求。天翎应用市场具有以下优势:
多样化的模板:市场上有大量多样化的应用模板可供选择,涵盖了各种行业和功能。用户可以根据自己的需求,选择适合的模板作为起点,快速搭建自己的应用。开放的平台:天翎应用模板市场是一个开放的平台,允许天翎合作伙伴将自己的应用模板到市场上进行销售。这样,不仅增加了市场上的模板数量,也促进了创新和合作。简便易用:市场上的应用模板都经过精心设计和开发,用户可以通过简单的操作进行安装和配置。无论是经验丰富的开发者还是没有编程经验的普通用户,都能够轻松地使用这些模板。定制化能力:虽然模板已经提供了基本的功能和界面,但用户仍然可以根据自己的需求进行定制和修改。这使得模板具有一定的灵活性,能够满足不同用户的特殊需求。社区支持:天翎应用模板市场还提供了一个活跃的社区,用户可以在这里交流经验、分享技巧,并获取支持和帮助。这种社区氛围促进了用户之间的合作和学习。
最近项目中想实现文件在线预览的功能,想想就头大,不过还是通过百度到一个免费的在线预览程序,那就是kkViewFile。
但是官网写的文档参考性较少,我在开发的时候遇到了一些问题,找不到好的解决办法,后来钻研了一天左右的时间,终于算是明白了一些,下边我就介绍一下kkFileView的部署和使用吧
一、下载kkViewFile
官网连接
gitee代码连接
相关文档连接
二、打包程序
下载之后,我们用idea打开file-online-preview,环境的话官网也有介绍:
- Java: 1.8+
- LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)
配置文件说明
他的代码里上传文件、删除文件等接口还是比较全面的。然后先修改他的配置文件,在他文档配置说明里也有介绍,而且配置文件中也有注释,这个我就不多做赘述了,根据自己情况来吧。
接口说明
因为他的存储路径路径是配置文件中file.dir+demo(默认的文件夹名称),我的种类比较多,所以我复制了他的接口自己改的,只用了他的预览功能,大家根据自己需要吧
三、部署
修改完配置之后,打包,根据自己项目的化进选择是zip还是gz,第一次打包的话因为需要下载很多东西,所以还是比较慢的。我是linux环境,我就以linux环境介绍了
放到指定目录后解压
tar -zxvf xxx.tar.gz 就有一个kkFileView的文件夹,里边有三个文件夹,一个是bin,一个是log,一个是config,我们启动、停止等命令都在bin目录下
# 启动命令 bash start.sh # 查看日志命令 bash showlog.sh # 停止命令 bash shutdown.sh 其实在启动时我就遇到了一个问题,我在自己虚拟机测试没问题,但是现场安装也没问题,但是启动报错“找不到office组件,请确认’office.home’配置是否有误”
该问题我网上也查了很多,大多都是这种解答
# 进入LibreOffice安装目录 检查安装情况,注意下方版本号 cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS yum localinstall *.rpm -y 可能我看gitee给的答案也是这样,但是对我来说意义不大,因为我压根就没有LibreOffice_7.1.4.2_Linux_x86-64_rpm文件夹
后来我就自己百度,发现是没有office导致了,也就是缺少了LibreOffice或OpenOffice环境,原因应该是是局域网不通外网导致下载失败
然后我就从自己虚拟机下载了一个发给了现场
wget https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz tar -zxvf LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz cd LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS yum install -y *.rpm 参考博客:https://blog.csdn.net/weixin_43866043/article/details/128224674
四、使用
服务启动后,日志也有说明,访问http://127.0.0.1:8012,如果自己修改了端口改为自己端口即可
该页面是他自带的页面,在这我们可以简单试一下上传文件、预览文件、删除文件
如果我们想在自己项目中引入的话
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var url = 'http://127.
又到暑假啦!又到了摆烂的快乐时光啦!摆烂要怎么摆呢?那当然当属到网上搜索免费的资源白嫖最快乐呀——不会还有朋友找不到网盘资源吧?
那么今天小编就给大家推荐几个简单实用的网盘资源检索引擎!
# 1. 口袋云 - 聚合型网盘搜索神器 地址:woxiangs0u.com支持网盘:聚合搜索,阿里、百度、夸克、迅雷网盘查看方式:直接打开 覆盖面全,简单实用,无广超净,实用力推!
# 2. 猫狸盘搜 - 阿里云盘搜索神器 地址:https://www.alipansou.c0m支持网盘:聚合搜索,阿里、百度、夸克查看方式:直接打开 简单好用,响应快速。
# 3. 奈斯搜索 - 资源超丰富的阿里云盘资源搜索网站! 地址:https://www.nices0.net支持网盘:阿里云盘查看方式:需登录、关注公号获取激活码 简单好用,响应快速,和千帆搜索类似。
# 4. 学霸盘 - 百度网盘学习资料搜索下载神器 地址:https://www.xuebapan.c0m支持网盘:百度网盘查看方式:直接打开 专注百度网盘资料搜索。
# 5. UP云搜 - 阿里云盘资源搜索神器 地址:https://www.upyunso.c0m支持网盘:阿里云盘查看方式:直接打开 更新快,资源方便。
# 6. YaPan 地址:https://pan.cc0f.cc支持网盘:阿里云盘查看方式:直接打开界面只有一个搜索框,比较适合手机使用。 还在等什么呢?快去试试吧!白嫖到了可别忘了点赞收藏~
import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.junit.Test; /** * Created by Jackielee on 2017 * @author: lizhilong * @date: 2017-11-24 10:13:57 * @Copyright: 2017 www.aliyun.com Inc. All rights reserved. */ public class DemoListToMap { List<Student> list = Arrays.asList(new Student(1, 18, "阿龙", GenderColumn.BOY.getCode()), new Student(2, 17, "小花", GenderColumn.GIRL.getCode()), new Student(3, 17, "阿浪", GenderColumn.LADYBOY.getCode())); @Test public void listToMapByObjectValue(){ // value 为对象 student -> student jdk1.8返回当前对象 Map<Integer, Student> map = list.