2019/08/07

JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序

JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。

eclipse:
myeclipse
netbeans:
jbuilder

首先,工厂模式是为了解耦
其次,工厂模式可以降低代码重复
另外,因为工厂管理了对象的创建逻辑,使用者并不需要知道具体的创建过程

HashTable

  • 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在 修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化
  • 初始size为11,扩容:newsize = olesize*2+1
  • 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.length

HashMap

  • 底层数组+链表实现,可以存储null键和null值,线程不安全
  • 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂
  • 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入
  • 插入元素后才判断该不该扩容,有可能无效扩容(插入后如果扩容,如果没有再次插入,就会产生无效扩容)
  • 当Map中元素总数超过Entry数组的75%,触发扩容操作,为了减少链表长度,元素分配更均匀
  • 计算index方法:index = hash & (tab.length – 1)

不修改代码,调整功能通过添加子类重写方法,调用父类/父接口引用传入子类对象来实现

import os import requests import zipfile # 目标图片链接 image_urls = [ # 成都 "https://cdn.pixabay.com/photo/2017/02/20/18/03/giant-panda-2081191_1280.jpg", # 熊猫 "https://cdn.pixabay.com/photo/2017/02/20/18/03/giant-panda-2081190_1280.jpg", # 熊猫进食 "https://cdn.pixabay.com/photo/2022/05/08/13/50/chengdu-7182906_1280.jpg", # 宽窄巷子 "https://cdn.pixabay.com/photo/2022/05/08/13/48/chengdu-7182903_1280.jpg", # 锦里夜景 "https://cdn.pixabay.com/photo/2019/12/04/15/02/hot-pot-4670880_1280.jpg", # 成都火锅 "https://cdn.pixabay.com/photo/2019/03/29/06/13/noodles-4080403_1280.jpg", # 担担面 # 重庆 "https://cdn.pixabay.com/photo/2019/04/28/09/35/chongqing-4165609_1280.jpg", # 洪崖洞 "https://cdn.pixabay.com/photo/2023/07/09/13/07/chongqing-8116411_1280.jpg", # 长江索道 "https://cdn.pixabay.com/photo/2023/07/09/13/07/chongqing-8116410_1280.jpg", # 磁器口 "https://cdn.pixabay.com/photo/2023/07/09/13/07/chongqing-8116409_1280.jpg", # 解放碑 "https://cdn.pixabay.com/photo/2023/07/09/13/07/chongqing-8116412_1280.jpg", # 李子坝轻轨 "https://cdn.pixabay.com/photo/2021/01/07/11/27/chongqing-5896971_1280.jpg", # 重庆夜景 "https://cdn.pixabay.com/photo/2020/12/04/17/05/hot-pot-5804983_1280.jpg", # 重庆火锅 "https://cdn.pixabay.com/photo/2019/12/07/09/07/noodles-4677732_1280.jpg", # 重庆小面 ] # 保存目录 os.makedirs("photos", exist_ok=True) # 下载图片 for i, url in enumerate(image_urls, 1): filename = f"photos/day{i}.jpg" print(f"正在下载: {url}") response = requests.get(url) with open(filename, "wb") as f: f.write(response.content) # 打包成 zip zip_filename = "chengdu_chongqing_photos.zip" with zipfile.ZipFile(zip_filename, "w") as zipf: for root, _, files in os.walk("photos"): for file in files: zipf.write(os.path.join(root, file), file) print(f"✅ 下载完成,已生成 {zip_filename}")
09-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值