Programming language
文章平均质量分 75
clay小哈_
这个作者很懒,什么都没留下…
展开
-
[Java设计模式](一)怎样实现Singleton(单例)模式编程
单例模式是开发模式中最简单,最易于理解的一种模式。简单地说,它指的就是始终保持一个实例的意思。但是,Java的类是可以穿件多个实例的,那么,怎么实现呢?顾名思义,单例模式就是只有一个实例。单例模式确保某一个类只有一个实例,这个类称为单例类,单例模式有3个要点:①是某个类只能有一个实例;②它必须自行创建这个实例;③是它必须自行向整个系统提供这个实例。例如,一些资源管理器常常设计成单例模式。原创 2015-03-30 15:20:11 · 1903 阅读 · 0 评论 -
进程,线程之间易混淆的几个问题
先来说说线程吧,线程的基本概念,教材上是这样定义的:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。原创 2016-03-26 17:23:57 · 1425 阅读 · 0 评论 -
MySQL数据库引擎详细介绍
InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。并且和MyISAM不同,InnoDB的辅助索引数据域存储的也是相应记录主键的值而不是地址,所以当以辅助索引查找时,会先根据辅助索引找到主键,再根据主键索引找到实际的数据。所以Innodb不建议使用过长的主键,否则会使辅原创 2016-06-15 20:59:33 · 388 阅读 · 0 评论 -
python并发
使用多线程可以有效的利用CPU资源(Python例外)。然而多线程所带来的程序的复杂度也不可避免,尤其是对竞争资源的***同步***问题。 然而在python中由于使用了全局解释锁(GIL)的原因,代码并不能同时在多核上并发的运行,也就是说,**Python的多线程不能并发**,使用多线程来改进自己的Python代码后,程序的运行效率却下降了。原创 2017-02-24 23:25:14 · 711 阅读 · 0 评论 -
lambda表达式的用法
lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错;lam = lambda x:x * xlam(2) # return 4lambda和map(),filter(),reduce()的关联使用方法 需要两个参数,第一个是一个处理函数,第二个是一个序列(list,tuple,dict)map() 将序列中的元素通过处理原创 2017-03-08 23:16:55 · 640 阅读 · 0 评论 -
Best questions about python at stackoverflow in 2016
1. 使用pythonic的方式避免“if x : return x”的语句。Question: I have a method that calls 4 other methods in sequence to check for specific conditions, and returns immediately (not checking the following ones)翻译 2017-02-26 10:11:28 · 704 阅读 · 0 评论 -
python爬虫和http请求协议
我经常会看到有人在知乎上提问如何入门 Python 爬虫?如何学习Python爬虫[入门篇]?等这一些问题,我今天写这篇文章的目的就是来告诉大家,我为什么要学爬虫,爬虫的本质是什么。原创 2017-02-21 23:09:35 · 1197 阅读 · 0 评论 -
mybatis 实践练习
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以原创 2017-03-27 14:38:33 · 1152 阅读 · 0 评论 -
Python开发技能表
Python开发工程师技能表...转载 2017-04-16 23:09:59 · 1629 阅读 · 0 评论 -
Java代码性能优化
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个原创 2017-04-23 10:45:06 · 588 阅读 · 6 评论 -
TCP/IP协议的三次握手和四次挥手(建立连接和断开连接)
1、TCP/IP协议概述TCP/IP协议(TransmissionControl Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种原创 2015-03-23 14:46:43 · 2934 阅读 · 1 评论 -
在浏览器输入栏敲入一个网址,之后发生了那些变化?
整个查找过程是这样的:(1)根据目的地址,得到目的网络号,如果处在同一个内网,则可以直接发送。(2)如果不是,则查询路由表,找到一个路由。(3)如果找不到明确的路由,此时在路由表中还会有**默认网关**,也可称为缺省网关,IP用缺省的网关地址将一个数据传送给下一个指定的路由器,所以网关也可能是路由器,也可能只是内网向特定路由器传输数据的网关。(4)路由器收到数据后,它再次为远程主机或网络查询路由,若还未找到路原创 2015-09-09 14:29:48 · 2054 阅读 · 0 评论 -
有关进程,线程通信的几个详细问题
先来说说线程吧,线程的基本概念,教材上是这样定义的:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。1、我们知道一个线程可以创建和撤消另一个线程,同一个进程中可以存在多个线程,多个线程之间可以并发执行。这样有什么好处呢?以下几点是很明确的: 易于原创 2017-04-23 10:55:03 · 757 阅读 · 1 评论 -
git pull 错误:refusing to merge unrelated histories
合并pull两个不同的项目,出现的问题fatal: refusing to merge unrelated histories,如何解决我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传。先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull 因为他们是两个不同的项目,要把两个不同的项目合并,gi原创 2017-05-25 06:38:18 · 1067 阅读 · 0 评论 -
如何调用别人提供的接口
传递对方的url,方法名,参数信息。不需要引用对方的代码。原创 2015-12-14 15:34:50 · 18477 阅读 · 3 评论 -
如何顺时针打印一个二维矩阵
昨天去网易公司面试,面试官给了一道题,以前好像见过类似的题目,和面试官讨论了半天,思路是正确的,可是最后还是没能够写出满意的代码,今天没有其他事,就来梳理一下吧! 题目是这样的:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。原创 2015-09-13 10:36:35 · 1442 阅读 · 0 评论 -
如何序列化和反序列化一个java对象
首先,什么是序列化?序列化,目前已经得到大多数计算机语言的支持,Java也不例外,Java的序列化功能是作为I/O功能的一个子项,它的使用也是比较方便的;序列化,又称为“串化”,可以形象的把它理解为把java对象内存中的数据采编成一串二进制的数据,然后把这些数据存放在可以持久的数据存储设备,如磁盘。当需要还原这些数据的时候,再通过反序列化的过程,把对象又重新还原到内存中。原创 2015-03-29 21:44:13 · 1088 阅读 · 0 评论 -
深入学习ArrayList 和 LinkedList类
import java.awt.event.*;import java.util.*;import javax.swing.*;public class JAVA链表系统库 { static JFrame f = new JFrame(); static MPanel mp = new MPanel(); public static void main(String arg[]){原创 2014-11-03 14:55:16 · 770 阅读 · 0 评论 -
Java中容易混淆的区别
Java中HashMap和HashTable的区别throw和throws有什么区别内存泄露和内存溢出的区别原创 2015-04-02 16:08:54 · 746 阅读 · 0 评论 -
Struts2 基础知识学习
JAVA web开发历史早期的Java Web应用中,Jsp文件同时负责生产网页,控制到下一个网页的流程,以及负责业务逻辑, 这给web开发带来一系列问题: HTML和Java耦合在一起,JSP文件的编写者必须是网页设计者,又是Java开发者。 缺点: 可读性差 调试困难 不利于维护,更改业务逻辑或者数据可能设计多个相关网页 现在通常分为四层: 表述原创 2015-04-03 22:20:05 · 880 阅读 · 0 评论 -
Spring框架学习
1,什么是spring框架? Spring框架究竟是什么?是像Struts一样的web框架,还是像Hibernate一样的数据层框架呢?Spring framework 是轻量级容器,主要是针对Javabean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架组合使用。原创 2015-04-04 21:45:27 · 630 阅读 · 0 评论 -
Java线程:并发协作-生产者消费者模型
对于多线程程序来说,不管任何编程语言,生产者消费者模型都是最经典的。 实际上,准确的说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。原创 2015-04-08 14:59:33 · 729 阅读 · 0 评论 -
如何利用Java高效读取大文件
在内存中读取 读取一个大约1G的文件文件流 Apache Commons IO流原创 2015-04-08 15:34:40 · 1798 阅读 · 0 评论 -
线程的生命周期
1.线程的生命周期线程是一个动态执行的过程,它也有一个从产生到死亡的过程。(1)生命周期的五种状态新建(new Thread)当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。例如:Thread t1=new Thread();就绪(runnable)线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到C转载 2015-04-15 15:37:23 · 489 阅读 · 0 评论 -
用友NC简介
什么是NC?NC是一个基于Java标准(更多的是JavaEE标准)的、以B/S方式运行的、可跨硬件平台的、可跨操作系统的、可跨数据库的、可跨服务器的、开发高端ERP产品的平台。 NC平台基于的技术有:Swing、JDBC、EJB、Servet、RMI、线程等技术。该平台将这些Java标准再次进行封装,使其更能够适应ERP产品的开发、更能够将逻辑放到业务层面上来,同时也更加安全,原创 2015-06-01 13:56:28 · 11547 阅读 · 0 评论 -
基于Socket实现网络编程
Socket是网络上两个程序间双向通讯的一端,它既可以发送请求,也可以接收请求,利用它可以方便的编写网络上数据的传递,在java中,有专门的类类处理用户的请求和响应。利用Socket 类的方法,就可以实现两台计算机之间的通信,那么怎么利用socket进行网络编程呢?我试试水~网络中的进程之间是如何进行通信的?本地进程间通信(IPC)有很多种方法,简而言之可以归结为以下四类:消息传递原创 2015-05-24 17:40:15 · 4489 阅读 · 0 评论 -
Redis在新浪微博中的应用
Redis简介1. 支持5种数据结构支持strings, hashes, lists, sets, sorted sets。 string是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;2. K-V 存储 vs K-V 缓存新浪微博目前使用的98%都是持久化的应用,2%的是缓存,用到了600+服务器 Redis中持久化的应用和非持久化的方式不会差别很大:转载 2015-09-06 10:58:41 · 717 阅读 · 0 评论 -
哈希表的工作原理
哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。 哈希表又叫做散列表,分为“开散列” 和“闭散列”。考虑到竞赛时多数人通常避免使用动态存储结构,本文中的“哈希表”仅指“闭散列”,关于其他方面读者可参阅其他转载 2015-09-11 11:13:12 · 707 阅读 · 0 评论 -
用正则表达式匹配IPV4地址
写一个正则表达式匹配IPV4地址说容易也容易,说难也难,取决于需要的准确度。简单起见,这里只考虑点分十进制的IPV4地址。 最简单的方式是把IPV4地址看做四段十进制数字串,由三个点号隔开,可以采用如下写法:^\d+\.\d+\.\d+\.\d+$就其本身而言没有问题,但会错误地匹配"448.90210.0.65535"这样的字符串,而一个恰当的IPV4表示法中每个域中的值不应大于255。但写一个匹配0到255的整数的正则表达式并不容易,因为正则表达式不理解算术,而是单纯基于文本。原创 2015-09-11 23:32:46 · 8429 阅读 · 1 评论 -
Anaconda 3.6安装wordcloud 词云出现问题[已解决]
最近看了好多网上的词云分析,感觉效果很出色,决定自己动手来试试,就打算安装wordcloud,但是在安装过程中出现了问题,采用下面两种常见的安装方式都不行啊。。。pip install wordcloudconda install wordcloud都会报同一个错误: 无语了。。。 我甚至直接指定了镜像, pip install -i https://pypi.tuna.tsinghua原创 2017-07-15 09:53:58 · 19214 阅读 · 10 评论