自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 关于JVM垃圾回收的一些提问

该算法简单且高效,特别适用于新生代收集,因为新生代中大部分对象都是短命的,而老年代的存活对象数量比较大,复制性能会变得很差,并且可用内存缩小为原来的一半,复制过程中也需要暂停应用线程。然后,在清除阶段,回收所有未被标记的对象所占用的内存。可达性分析法通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时(即从GC Roots到这个对象不可达),则证明此对象是不可用的。

2024-02-05 18:38:15 814

原创 DMP项目架构及各个模块

根据DMP的三种不同数据来源诞生了三中不同的DMP平台,分别是第一方DMP:单体企业,以企业CRM系统为主,第二方DMP:广告公司,以广告投放为主,第三方DMP:大数据服务商,以数据交易为主。DMP的数据来源主要有三方数据,第一方数据主要包含企业供应商数据、企业会员数据、企业销售数据;第二方数据主要包含用户行为数据,用户消费数据;整个DMP项目架构分为四层,分别是应用层——人群圈选、数据分析、标签管理,服务层——统计指标数据和挖掘行为偏好数据,数据加工层——数据加工、定时任务,数据存储层——Hive数仓。

2024-01-02 18:21:55 463

原创 使用Python进行页面开发——Django的其他核心功能

项目中的CSS、图片、js都是静态文件。

2022-08-04 16:06:43 276 1

原创 使用Python进行页面开发——Django常用Web工具

自定义上传的视图代码(2) 使用模型处理上传文件: 注意:如果属性类型为ImageField获使用图片处理,那么就需要安装包Pillow 图片存储路径 在项目根目录下创建media文件夹 图片上传后,会被保存到“/static/media/cars/图片文件” 打开settings.py文件,增加media_root项 使用django后台管理,遇到ImageField类型的属性会出现一个file框,完成文件上传二、分页操

2022-08-03 17:02:18 1299

原创 使用Python进行页面开发——模板层

首先在当前应用目录下创建一个模板标签目录,建议内放一个的空文件然后在目录下创建一个模板标签文件pagetag.py(这个名字随意取),具体代码如下#自定义过滤器(实现大写转换)',val)#自定义标签(实现减法计算)使用在模板文件使用6.自定义标签大写相减。...

2022-08-01 21:00:38 1335

原创 使用Python进行页面开发——Django视图层

session一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django启用会话的支持时才可用,详细内容见“状态保持”method一个字符串,表示请求使用的HTTP方法,常用值包括'GET'、'POST'COOKIES一个标准的Python字典,包含所有的cookie,键和值都为字符串。POST一个类似于字典的对象,包含post请求方式的所有参数。path一个字符串,表示请求的页面的完整路径,不包含域名。GET一个类似于字典的对象,包含get请求方式的所有参数。...

2022-07-31 15:47:43 355

原创 使用python进行页面开发——Django模型层

在模型中定义属性,会生成表中的字段Django根据属性的类型确定以下信息1.当前选择的数据库支持字段的类型2.渲染管理表单时使用的默认html控件3.在管理站点最低限度的验证Django会为表增加自动增长的主键列,每个模型只能有一个主键列。属性命名限制1.不能是Python的保留关键字2.由于Django的查询方式,不允许使用连续的下划线4.1编辑mydemo/myapp/models.py需要改成)4.2测试Model类的使用在项目根目录下执行命令3519)张三。...

2022-07-28 09:39:40 363

原创 使用Python进行网站页面开发——Django的URL路由配置

当从使用切换为使用path(),re_path()反之亦然时,特别重要的是要注意视图参数的类型可能会更改,因此您可能需要调整视图。一旦正则表达式匹配,Django将导入并调用给定的视图,这是一个简单的Python函数(或基于类的视图)。当Django找不到与请求的URL匹配的正则表达式时,或者异常引发时,Django将调用错误处理视图。值必须是可调用的,或者代表视图的完整的Python导入路径的字符串,应该被调用来处理手头的错误条件。,因为这样可以更轻松地在匹配的预期含义和视图的参数之间意外引入错误。...

2022-07-22 17:33:00 2401

原创 使用Python进行网站页面开发——Django快速入门

但我们的自定义应用程序在哪里?并没有显示在后台管理索引页面上。就会发现增加了。

2022-07-21 16:07:36 7081 4

原创 使用Python进行网站页面开发——Django框架介绍与安装

Web上的一些最繁忙的网站利用了Django快速灵活扩展的能力。Django认真对待安全性,帮助开发人员避免许多常见的安全错误。Django的宗旨在于帮助开发人员快速从概念到完成应用程序。框架就是程序的骨架,主体结构,也是个半成品。4.Web框架中的一些概念MVC和MVT。四、Django框架介绍---特点。#默认会安装Django的最新版本。检测当前是否安装Django及版本。3.Python中常见的框架。五、Django框架安装。三、Django框架介绍。可重用、成熟,稳健、...

2022-07-18 16:01:17 561

原创 使用Python进行网站页面开发——网页布局介绍

注意使用HTML5语义化标签的布局模式在IE9以下浏览器不兼容,可使用下面的代码解决。页面的逻辑区域或内容组合(区块)定义正文或一篇完整的内容(文章)定义页面或区段的头部(页眉)定义页面或区段的尾部(页脚)定义页面或区段的导航区域(导航)定义补充或相关内容(侧边栏)第一种直接在页头中使用CSS样式修饰。一、传统的DIV+CSS布局。作用提高了搜索引擎优化。1.HTML5语义化标签。...

2022-07-18 09:32:50 1064

原创 使用Python进行页面开发——CSS

text-transform对象中的文本的大小写capitalize(首字母)|uppercase大写|lowercase小写*text-decoration字体画线none无、underline下画线,line-through贯穿线。区域外的部分是透明的。rect(上-右-下-左)如cliprect(auto50px20pxauto);font-stretch[了解]文字的拉伸是相对于浏览器显示的字体的正常宽度(大部分浏览器不支持)。...

2022-07-15 15:32:43 2773 1

原创 使用Python进行网站页面开发——HTML

目录一、HTML基础语法1.HTML是什么?2.HTML基本结构3.HTML注释二、HTML常用标签介绍1.文本标签2.格式化标签3.图片标签4.超级链接标签5.表格标签(用来显示数据)6.表单标签(用来接收数据)7.行内框架标签8.多媒体标签●HTML是HyperText Mark-up Language的首字母简写,即超文本标记语言。●HTML不是一种编程语言,而是一种标记语言。●超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成。●用这种语言制作的文件保存的

2022-07-13 15:01:59 14990 1

原创 Python基础——函数与模块

一、函数声明函数:def关键字加上函数的名字再跟上函数的参数列表。调用函数: • 使用 ( ) 进行调用。• 没有 ( ), 不进行调用。 • 一切皆是对象 ,函数也是对象可变和不可变类型:...

2022-04-16 19:41:33 1498

原创 Python基础——标识符、Python保留字、数据类型和控制流、数字类型

一、标识符1.第一个字符必须是字母表中字母或下划线_。(首字不能为数字)2.标识符的其他部分由字母、字母和下划线组成。3.标识符对大小写敏感。4.并且python3可以用中文作为变量名。二、Python保留字保留字即关键字,我们不能把它们用作任何标识符名称。Python的标准库提供了一个keyword模板,可以输出当前版本的所有关键字。>>> import keyword>>> keyword. kwlist['False', 'Non

2022-04-10 23:00:01 2378

原创 力扣第316题“去除重复字母”的解题思路

参考代码:class Solution { public String removeDuplicateLetters(String s) { Stack<Character> stack = new Stack<>(); //数组seen记录当前栈中已经存在的字符,如果后续再遇到可以直接跳过 boolean[] seen = new boolean[26]; //last_occurrence 记录字符串中

2022-03-24 23:28:28 565

原创 力扣第313题“超级丑数”的解题思路

参考代码:class Solution { public int nthSuperUglyNumber(int n, int[] primes) { int[] dp=new int[n]; dp[0]=1; int[] index=new int[primes.length]; for(int i=1;i<n;i++){ int min=Integer.MAX_VALUE;

2022-03-24 21:17:00 218

原创 力扣第309题“最佳买卖股票时机含冷冻期”的解题思路

参考代码:class Solution { public int maxProfit(int[] prices) { int n=prices.length; if(n==0)return 0; int[] hold=new int[n]; hold[0]=-prices[0]; int[] notHold=new int[n]; for(int i=1;i<n;i++){

2022-03-22 23:05:00 193

原创 力扣第306题“累加数”的解题思路

参考代码:class Solution { public boolean isAdditiveNumber(String num) { for (int i = 1; i < num.length(); i++) { long k = 0; for (int j = 0; j < i; j++) { // k, l 分别代表两加数,j为分裂的位置 k = k * 10 + (num.ch

2022-03-21 21:30:30 349

原创 力扣第338题“比特位计数”的解题思路

参考代码: class Solution{public int[] countBits(int num) { int[] res = new int[num + 1]; for(int i = 1;i<= num;i++){ //注意要从1开始,0不满足 res[i] = res[i & (i - 1)] + 1; } return res; }}大致思路:找到数组中当前的i的二

2022-03-18 23:16:26 128

原创 力扣第300题“最长递增子序列”的解题思路

方法一:动态规划参考代码:class Solution { public int lengthOfLIS(int[] nums) { if(nums.length == 0) return 0; int[] dp = new int[nums.length]; int res = 0; Arrays.fill(dp, 1); for(int i = 0; i < nums.length; i++) {

2022-03-18 22:28:27 620

原创 力扣第299题“猜数字游戏”的解题思路

参考代码:class Solution { public String getHint(String secret, String guess) { int[] nums = new int[10]; int m=0,n=0; for(int i=0;i<guess.length();i++){ if(secret.charAt(i)==guess.charAt(i)){ m++;

2022-03-16 23:47:37 3333

原创 力扣第292题“Nim游戏”的解题思路

参考代码:class Solution { public boolean canWinNim(int n) { if(n%4==0){ return false; } return true; }}大致思路:先自己判断一下5、6、7、8是true还是false,会发现8那里是false,在自己推理的过程中就会发现,凡是碰到4的倍数,先手的一定会输,你拿N根对手就会拿4-N根,保证每回合共减4根,你永远是4

2022-03-16 20:51:23 2802

原创 力扣第290题“单词规律”的解题思路

参考代码:class Solution { public boolean wordPattern(String pattern, String s) { String[] words = s.split(" "); if (words.length != pattern.length()) { return false; } Map<Object, Integer> map = new Hash

2022-03-15 22:49:54 334

原创 力扣第287题“寻找重复数”的解题思路

参考代码:class Solution { public int findDuplicate(int[] nums) { int len = nums.length; int left = 1; int right = len - 1; while (left < right) { int mid = left + (right - left) / 2;

2022-03-14 23:10:54 485

原创 力扣第283题“移动零”的解题思路

参考代码: public void moveZeroes(int[] nums) { if (nums == null || nums.length <= 1) { return; } int index = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] != 0) { nums[in

2022-03-11 23:27:03 283

原创 力扣第279题“完全平方数”的解题思路

参考代码:class Solution { public int numSquares(int n) { while(n % 4 == 0) n /= 4; if(n % 8 == 7) return 4; for(int i = 0; i * i <= n; ++i) { if(n - i * i == 0) return 1; } for(int i = 0; i * i

2022-03-10 22:25:04 201

原创 力扣第278题“第一个错误的版本”的解题思路

参考代码: public class Solution extends VersionControl { public int firstBadVersion(int n) { int lo = 1; int hi = n; while(lo < hi) { int mid = lo + (hi - lo) / 2; if (isBadVersion(mid)) {

2022-03-09 23:22:37 161

原创 力扣第274题“H指数”的解题思路

参考代码:class Solution { public int hIndex(int[] citations) { Arrays.sort(citations); int h = 0, i = citations.length - 1; while (i >= 0 && citations[i] > h) { h++; i--; }

2022-03-08 22:53:26 247

原创 力扣第268题“丢失的数字”的解题思路

参考代码:class Solution { public int missingNumber(int[] nums) { int res = nums.length; for(int i = 0; i < nums.length; i++){ res ^= nums[i] ^ i; } return res; }}大致思路:由位运算符中异或的性质:0 ^ 4 = 4 4 ^ 4

2022-03-07 22:54:46 127

原创 力扣第264题“丑数二”的解题思路

参考代码:class Solution { public int nthUglyNumber(int n) { int n2 = 0,n3 = 0,n5 = 0; int[] dp = new int[n]; dp[0] = 1; for(int i = 1;i<n;i++){ dp[i] = Math.min(2*dp[n2],Math.min(3*dp[n3],5*dp[n5]));

2022-03-06 22:00:24 109

原创 力扣第263题“丑数”的解题思路

参考代码:class Solution { public boolean isUgly(int n) { if(n==1){ return true; } if(n<=0){ return false; } while (n%5==0){ n/=5; } while (n%3==0){

2022-03-04 23:01:10 86

原创 力扣第260题“只出现一次的数字三”的解题思路

参考代码:class Solution { public int[] singleNumber(int[] nums) { int xor = 0; for (int num : nums) { xor ^= num; } int mask = xor & (-xor); int[] ans = new int[2]; for (int num : nu

2022-03-02 22:52:29 153

原创 第258题“各位相加”的解题思路

参考代码:class Solution { public int addDigits(int num) { if(num==0){ return 0; } while(num>=10){ int sum=0; while(num>0){ int a=num%10; num=num/10;

2022-03-01 22:00:09 46

原创 第257题“二叉树的所有路径”的解题思路

参考代码:class Solution { private List<String>res=new ArrayList<>(); public List<String> binaryTreePaths(TreeNode root) { dfs(root,new StringBuilder()); return res; } private void dfs(TreeNode root,Str

2022-02-28 22:29:34 162

原创 力扣第242题“有效的字母异位词”的解题思路

参考代码:class Solution { public boolean isAnagram(String s, String t) { int[] count = new int[26]; for(int i = 0; i < s.length(); i++){ count[s.charAt(i) - 'a']++; } for(int i = 0; i < t.length(); i++){

2022-02-23 21:05:59 204

原创 力扣第240题“搜索二维矩阵二”的解题思路

参考代码:class Solution { public boolean searchMatrix(int[][] matrix, int target) { if (matrix == null || matrix.length == 0) return false; int m = 0; int n = matrix[0].length - 1; while (m < matrix.length && n

2022-02-23 20:29:23 221

原创 力扣第238题“除自身以外的数组的乘积”的解题思路

参考代码:class Solution { public int[] productExceptSelf(int[] nums) { if (nums == null || nums.length == 0) { return new int[0]; } int len = nums.length; int[] res = new int[len]; int left =

2022-02-22 20:02:49 206

原创 力扣第237题“删除链表中的节点”的解题思路

参考代码:class Solution { public void deleteNode(ListNode node) { node.val=node.next.val; node.next=node.next.next; }}一般的删除节点我们可以用head->next->val去判断下一个是否是删除的节点,然后head->next=head->next->next,而此题中node就是我们需要删除的节点,所以我们可

2022-02-22 18:23:08 181

原创 力扣第236题“二叉树的最近公共先祖”的解题思路

参考代码:class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (root == null) { return root; } if (root == p || root == q) { return root; } TreeN

2022-02-21 20:35:32 167

空空如也

空空如也

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

TA关注的人

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