- Leetcode 和为 K 的子数组
Wils0nEdwards
Leetcodeleetcode算法数据结构
可以用前缀和(PrefixSum)和哈希表(HashMap)来设计算法。算法思想前缀和的定义:前缀和是指数组中从第一个元素开始,到当前元素为止的所有元素的总和。假设数组是nums,定义前缀和prefixSum[i]为nums[0]到nums[i]的总和。即:prefixSum[i]=∑j=0inums[j]\text{prefixSum}[i]=\sum_{j=0}^{i}\text{nums}[
- mysql--2.索引
Hfc.
mysql数据库
【索引】概述:通过索引,高效对于mysql数据进行二叉树结构检索。扫描比全表扫描少,降低IO成本。缺点:占用磁盘,空间换时间,降低更新表速度(update,insert,delete)。结构{B+树,范围匹配,所有存储引擎都支持。hash,精确匹配,不支持范围,仅支持menmory引擎。r-tree(仅支持misam)。full-text(全文索引,倒排,仅支持misam-innodb)。}索引{
- 双列集合---LinkedHashMap实现类
熊猫的反手凶变直线
#Java集合模块java开发语言笔记
LinkedHashMap是Java集合框架中的一个重要类,继承自HashMap,并在其基础上增加了双向链表来维护元素的插入顺序或访问顺序,其实参考Set系列中LinkedHashSet就知道了,LinkedHashMap和HashMap不同的地方就在键值的存储数据结构是不一样,除了这点不同其他的完全一样;其实这些集合的功能大同小异,只是底层实现的数据结构不同使得他们的用途不相同,但对于使用者来讲
- Scala 的Map集合
anqi27
scala开发语言后端
Map集合有两种类型,可变的与不可变的,区别在于可变对象可以修改,而不可变对象不可以修改。默认情况下Scala使用不可变Map集合,如果需要使用可变Map集合,则需要显式地使用import导入包。在Scala中,可以同时使用可变与不可变的Map集合,不可变的直接使用Map,可变的使用mutable.Map。1.1Scala的Map继承关系HashMap基于哈希表实现可变的版本,基于HashTrie
- 代码随想录算法训练营第六天
写个博客
代码随想录打卡算法
LeetCode题目454.四数相加II383.赎金信15.三数之和18.四数之和2140.解决智力问题(每日打卡)总结往期打卡454.四数相加II跳转:454.四数相加II问题:给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0map=newHashMapmagazine.length())returnfalse;in
- 万字文肝Redis基础知识
Amo Xiang
大数据开发redisnosql数据库大数据
目录第一章Redis的介绍和安装1.1为什么需要学习NOSQL1.2主流的NOSQL产品1.3NOSQL的特点1.4Redis概述1.5Window版Redis的安装(了解)1.6Linux版本Redis的安装1.7Redis基础命令1.8多数据库特性第二章Redis的数据类型2.1Redis字符串(String)2.2Redis哈希(Hash)2.3Redis列表(List)2.4Redis集合
- 数据结构----栈和队列阅读笔记
四灵妖
数据结构知识点
认识数据结构什么是数据结构?下面是维基百科的解释数据结构是计算机存储、组织数据的方式数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装数组是最简单的内存数据结构,下面是常见的数据结构:数组(Array)栈(Stack)队列(Queue)链表(LinkedList)树(Tree)图(Graph)堆(Heap)散列表(Hash)下面来学习
- C/C++实现hmacSha256+base64
帅得不敢出门
C/C++c语言c++开发语言加解密sha256hmacbase64
文章目录HMAC工作原理应用场景SHA-256工作原理应用场景Base64工作原理应用场景C/C++实现HMAC-SHA256相关文章HMACHMAC(Hash-basedMessageAuthenticationCode)即基于哈希的消息认证码,它是一种使用加密哈希函数来验证消息完整性和真实性的机制。工作原理HMAC使用一个密钥和一个哈希函数来生成一个固定长度的认证码。发送方和接收方事先共享一个
- 迭代器组装树结构
bright future cheer
java
以menu为例classMenu{privateLongid;privateStringname;privateLongparentId;privateListchildren;}publicstaticListbuildTreeIteratively(Listmenus,LongrootParentId){Map>menuMap=newHashMap子节点列表的映射for(Menumenu:me
- Java 中的 Object、equals() 和 hashCode() 深度剖析
笨蛋不要掉眼泪
开发语言java
前言Java中的Object类是一个非常基础且重要的类,它是所有类的父类,所有的类(包括用户自定义的类)都是直接或间接继承自Object类。这意味着所有的类都可以使用Object类中定义的方法,这为我们编写更加通用和灵活的代码提供了基础。今天,我们将深入探讨以下几个关键知识点:Object类作为所有类的超类的作用和意义。equals()方法的定义和使用,以及为什么需要重写equals()方法。ha
- Redis大Key问题全解析:从原理到实战的深度解决方案
耿雨飞
#redisredis数据库缓存
什么是BigKey?为什么它成为Redis的性能杀手?定义与评判标准BigKey指在Redis中占用内存或元素数量超出业务合理阈值的键值对。其判定标准因数据类型而异:String类型:内存超过1MB(极端场景下10MB即视为大Key)集合类型(Hash/List/Set/ZSet):元素数量超过5000个(阿里云规范建议值)或内存达百万级复合场景:如未分片的用户行为日志、商品详情页缓存(含图文描述
- Redis高频面试题深度解析(2024实战版)
果果了不起
redis数据库缓存
前言Redis作为当下最火的NoSQL数据库(没有之一),在面试中出现的频率堪比Java里的HashMap!今天咱们就来扒一扒那些让面试官眼睛发光的Redis灵魂拷问,看完这篇你至少能顶住三轮技术面!(实战经验+避坑指南双重buff加成)一、Redis数据类型全家福(附必杀技)面试官最爱问:“Redis支持哪些数据类型?各有什么使用场景?”1.1五大基础类型String(字符串)常规操作:SETu
- 【2025最新Java面试八股】Java中实现线程安全的集合?ConcurrentHashMap是如何保证线程安全的?List.of()和subLIst底层是怎么样的?COW又是什么?
尤物程序猿
java面试安全
在Java中,实现线程安全的集合有多种方式,主要分为两大类:基于锁的同步集合和并发优化的无锁/分段锁集合。以下是详细说明和ConcurrentHashMap的线程安全实现原理。一、Java中实现线程安全的集合的几种方式1.同步包装类(基于锁)通过Collections.synchronizedXXX方法将普通集合转为线程安全集合,底层使用互斥锁(synchronized)保证线程安全:Listsy
- 将两个list去重_List去重的5种方式
稚一
将两个list去重
(给ImportNew加星标,提高Java技能)转自:多纤果冻链接:blog.csdn.net/qq_37939251/article/details/90713643以下介绍五种-不同的方法去除Java中ArrayList中的重复数据1.使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHash
- Java中的并发编程类
程序员曼布
java开发语言
一.总体介绍基础的线程Thread类,Runnable接口以及高级一点的Future,Callable接口。到后来的线程池ThreadPoolExecutor类,以及一些常用的volatile,synchronized关键字,原子类,通信工具类,还有一些并发集合ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,Concurrent
- 数据结构与算法学习笔记----哈希表
明月清了个风
数据结构与算法笔记(基础课)散列表学习笔记哈希算法
数据结构与算法学习笔记----哈希表@@author:明月清了个风@@firstpublishtime:2024.12.3哈希表(HashMap)哈希表是一种基于数组的数据结构,通过哈希函数将值映射到数组的索引位置,从而实现高效的数据存储和检索。哈希的基本操作包括插入(insert)、查找(search)和删除(delete),其平均时间复杂度为O(1)O(1)O(1)。实现原理哈希函数:哈希函数
- Qt 容器类使用指南
CheungChunChiu
QT界面开发qt开发语言linuxc++容器
常用Qt容器类Qt提供了一系列容器类,类似于STL容器但更紧密集成到Qt框架中。常用容器包括:顺序容器:QList-最常用的动态数组QVector-类似QList,在Qt5后与QList合并QLinkedList-双向链表QStack-后进先出堆栈QQueue-先进先出队列关联容器:QMap-键值对,按键排序QMultiMap-一键多值QHash-类似QMap但使用哈希表,查找更快QMultiHa
- 美团 java开发后端 实习生 面经
Arthuryeah
java后端面试
投的美团外卖核心部门java开发实习生笔试4.18五道编程题ac很少5.8一面(35min)1.自我介绍,然后先手撕代码,一道多线程循环打印问题,只撕出来了50%2.问我项目经历,在项目中遇到挑战怎么解决,最大的收获是什么。3.进程和线程怎么理解的,然后一直深挖操作系统在内存空间里面怎么分配cpu…4.能实习多久…5.结合业务场景什么时候用多线程,什么时候用多进程6.hashmap怎么解决冲突(当
- 《2025最新Java面试题全解析:从基础到高并发架构设计》
小凡敲代码
开发语言javajava面试java八股文java面试题互联网大厂程序员
25年Java开发者面试中最常考察的100+道面试题,涵盖Java基础、JVM、多线程、Spring框架、分布式系统等核心知识点,并结合大厂真实面试案例进行深度解析,助你顺利通过技术面试。一、Java基础篇(高频15问)1.HashMap底层实现原理//JDK8的树化阈值演示staticfinalintTREEIFY_THRESHOLD=8;publicVput(Kkey,Vvalue){retu
- Kotlin与Java的主要区别,以及在Android开发中的应用。
Dyan_csdn
Androidjavaandroidkotlin
Kotlin与Java的主要区别以及它们在Android开发中的应用可以从多个方面进行比较。以下是一些关键点:###Kotlin与Java的主要区别:1.**语法简洁性**:-Kotlin的语法更加简洁,减少了样板代码,使得代码更加易读和维护。例如,Kotlin的数据类可以自动生成常用的函数,如`equals()`、`hashCode()`和`toString()`,而Java则需要手动编写。2.
- 力扣 - Hot100 (字母异位词分组 - Hash)
描绘一抹色
LeetCode-Hot100leetcode算法hash
49.字母异位词分组中等给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=["eat","tea","tan","ate","nat","bat"]输出:[["bat"],["nat","tan"],["ate","eat","tea"]]1>groupAnagrams(String[]str
- redis批量插入操作
时间之城
redis数据库java
redis批量插入操作方式一:RedisTemplateredisTemplate;publicvoidlistCache(Listlists){Mapmap=newHashMaplists){JedisPooljedisPool=newJedisPool(newJedisPoolConfig());Jedisjedis=jedisPool.getResource();Pipelinepipeli
- Python 计算文件的哈希值(hashlib 库)
掉发速度与技术齐飞
python哈希算法开发语言
```htmlPython计算文件的哈希值(hashlib库)Python计算文件的哈希值(hashlib库)在现代软件开发和数据处理中,文件的完整性验证是一项非常重要的任务。为了确保文件没有被篡改或损坏,我们通常会使用哈希算法来生成文件的唯一摘要。Python提供了一个内置库hashlib,它支持多种常见的哈希算法,如MD5、SHA1、SHA256等。什么是哈希值?哈希值是通过哈希函数对输入数据
- Java 中的 IdentityHashMap:基于引用相等的特殊 Map 实现
还记得第一次遇到需要比较对象引用而非内容的场景吗?大多数Java开发者习惯了使用HashMap等集合类,它们通过equals()方法比较键值对象。比如在处理用户信息时,我们只关心两个User对象的id是否相同,而不管它们是不是同一个对象实例。但有些场景下,这种行为却成了阻碍。比如处理对象图遍历、深拷贝或序列化时,我们更关心"这是否是同一个对象实例",而非"这两个对象的内容是否相同"。Java集合框
- Java 中的 WeakHashMap:原理、内存管理与实用技巧
你是不是也曾经因为内存泄漏问题熬夜加班?我第一次遇到这个问题是在开发一个缓存系统时,明明已经不用的对象却怎么都释放不掉。在Java开发中,合理管理内存资源是个大问题。传统的HashMap会一直持有键值对的强引用,即使外部已经不再使用这些对象。而WeakHashMap正好能解决这个烦恼,它能自动感知对象的生命周期,帮我们处理那些不再需要的数据。WeakHashMap是什么?WeakHashMap是J
- Java 中的 IdentityHashMap:基于引用相等的特殊 Map 实现
还记得第一次遇到需要比较对象引用而非内容的场景吗?大多数Java开发者习惯了使用HashMap等集合类,它们通过equals()方法比较键值对象。比如在处理用户信息时,我们只关心两个User对象的id是否相同,而不管它们是不是同一个对象实例。但有些场景下,这种行为却成了阻碍。比如处理对象图遍历、深拷贝或序列化时,我们更关心"这是否是同一个对象实例",而非"这两个对象的内容是否相同"。Java集合框
- HashMap源码解析
骆驼整理说
Java基础hashtablejava
HashMap是Java集合框架中非常重要的一个类,它实现了Map接口,用于存储键值对。HashMap允许使用null作为键和值,下面是对HashMap源码的基本解析,主要关注其内部结构和核心方法。内部结构Node节点HashMap内部通过Node类来存储键值对。每个Node对象包含一个键、一个值、一个指向下一个Node的引用(用于解决哈希冲突时的链表),以及一个用于标识节点类型的hash值。st
- 25.4.17学习总结
The_cute_cat
学习
关于bcrypt算法BCrypt的主要特点和优点:加盐(Salting):BCrypt会自动为每个密码生成一个随机的盐值(salt)并将其与密码组合在一起,然后再进行哈希。盐值是随机数据,用于防止彩虹表攻击。这意味着即使两个用户使用相同的密码,他们的哈希值也会不同。慢哈希(SlowHashing):BCrypt被设计成一个运算量大的哈希函数,需要更多的计算时间。这种设计使得暴力破解(尝试所有可能的
- Redis 与 Memcache 全面对比:功能、性能与应用场景解析
编程在手天下我有
缓存数据库性能对比数据结构持久化分布式
Redis和Memcache都是常用的内存数据库,以下是它们在多个方面的能力比较:一、数据类型Redis:支持丰富的数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(SortedSet)等。这使得Redis能满足各种不同的应用场景需求,例如缓存、消息队列、分布式锁、实时数据处理等。Memcache:主要支持简单的键值对数据类型,数据结构较为单一,在一
- 缓存,内存,本地缓存等辨析
我的golang之路果然有问题
缓存笔记学习内存redismemcache
快速辨析缓存,内存,本地缓存,memcache,redis等(个人临时记录)缓存泛指所有用于暂存数据以提升访问速度的技术,包括本地缓存、分布式缓存、CPU缓存等。核心目标是减少对慢速存储(如磁盘、数据库)的直接访问本地缓存属于缓存的一种,特指与应用程序同进程的内存存储(如Java的HashMap、GuavaCache)。数据仅在当前进程有效,无法跨节点共享,访问速度极快(纳秒级)但容量有限技术举例
- tomcat基础与部署发布
暗黑小菠萝
Tomcat java web
从51cto搬家了,以后会更新在这里方便自己查看。
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。
一、Tomcat安装
安装方式:①运行.exe安装包
&n
- 网站架构发展的过程
ayaoxinchao
数据库应用服务器网站架构
1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何
- [信息与安全]数据库的备份问题
comsci
数据库
如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题
如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢?
是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢?
&n
- 使用maven tomcat plugin插件debug关联源代码
商人shang
mavendebug查看源码tomcat-plugin
*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的
- 大访问量高并发
oloz
大访问量高并发
大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简
要列出几点解决方案:
01、优化你的代码和查询语句,合理使用索引
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中
03、采用服务器集群、负载均衡分担大访问量高并发压力
04、数据读写分离
05、合理选用框架,合理架构(推荐分布式架构)。
- cache 服务器
小猪猪08
cache
Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
1.Cache 是怎么样工作的?
Cache 是分配在服务器上
- mysql存储过程
香水浓
mysql
Description:插入大量测试数据
use xmpl;
drop procedure if exists mockup_test_data_sp;
create procedure mockup_test_data_sp(
in number_of_records int
)
begin
declare cnt int;
declare name varch
- CSS的class、id、css文件名的常用命名规则
agevs
JavaScriptUI框架Ajaxcss
CSS的class、id、css文件名的常用命名规则
(一)常用的CSS命名规则
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right
- 全局数据源
AILIKES
javatomcatmysqljdbcJNDI
实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l
- MYSQL的随机查询的实现方法
baalwolf
mysql
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,
- JAVA的getBytes()方法
bijian1013
javaeclipseunixOS
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!
String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "
- AngularJS中操作Cookies
bijian1013
JavaScriptAngularJSCookies
如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。
幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎
- [Maven学习笔记五]Maven聚合和继承特性
bit1129
maven
Maven聚合
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:
1. 模型和数据持久化层user-core,
2. 业务逻辑层user-service以
3. web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和use
- 【JVM七】JVM知识点总结
bit1129
jvm
1. JVM运行模式
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler
- linux下查看nginx、apache、mysql、php的编译参数
ronin47
在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。
1、nginx
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/
- unity中运用Resources.Load的方法?
brotherlamp
unity视频unity资料unity自学unityunity教程
问:unity中运用Resources.Load的方法?
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置
1、unity实时替换的物体即是依据环境条件
- 线段树-入门
bylijinnan
java算法线段树
/**
* 线段树入门
* 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
* 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
*
* 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
* @author lijinna
- 全选与反选
chicony
全选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
- vim一些简单记录
chenchao051
vim
mac在/usr/share/vim/vimrc linux在/etc/vimrc
1、问:后退键不能删除数据,不能往后退怎么办?
答:在vimrc中加入set backspace=2
2、问:如何控制tab键的缩进?
答:在vimrc中加入set tabstop=4 (任何
- Sublime Text 快捷键
daizj
快捷键sublime
[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:
- php 引用(&)详解
dcj3sjt126com
PHP
在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 复制代码代码如下:
<?
$a="ABC";
$b =&$a;
echo
- SVN中trunk,branches,tags用法详解
dcj3sjt126com
SVN
Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
- 对软件设计的思考
e200702084
设计模式数据结构算法ssh活动
软件设计的宏观与微观
软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传
- 同步、异步、阻塞、非阻塞
geeksun
非阻塞
同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。
实现:
- Reverse SSH Tunnel 反向打洞實錄
hongtoushizi
ssh
實際的操作步驟:
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22 fred@myhost.com
# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1
- Hibernate中的缓存
Josh_Persistence
一级缓存Hiberante缓存查询缓存二级缓存
Hibernate中的缓存
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存
- 对象关系行为模式之延迟加载
home198979
PHP架构延迟加载
形象化设计模式实战 HELLO!架构
一、概念
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。
二、实现延迟加载
实现Lazy Load主要有四种方法:延迟初始化、虚
- xml 验证
pengfeicao521
xmlxml解析
有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错
public static void testPattern() {
// 含有非法字符的串
String str = "Jamey친ÑԂ
- div设置半透明效果
spjich
css半透明
为div设置如下样式:
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci
- 你真的了解单例模式么?
w574240966
java单例设计模式jvm
单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。
一,单例模式的5中写法。(回字的四种写法,哈哈。)
1,懒汉式
(1)线程不安全的懒汉式
public cla