Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

设计模式——单例模式

设计模式——单例模式

设计模式:设计模式代表了最佳实践,是软件开发过程中面临一般问题的解决方案。 设计模式是一套被反复使用、经过分类、代码设计总结的经验。单例模式单例模式也叫单件模式。Singleton是一个非常常用的设计模式,几乎所有稍微大一些的程序都会使用到它,所以构建一个线程安全并且 高效的Singleton很重要。1. 单例类保证全局只有一个唯一实例对象。 2. 单例类提供获取这个唯一实例的接口。由于要求只生成一个实例,因此我们必须把构造函数的访问权限标记为protec...
const修饰的常量通过指针进行间接修改

const修饰的常量通过指针进行间接修改

const修饰的常量 不能被直接修改 但是可以通过指针进行间接修改。大家都知道如下代码中,被const限定的a是不可以被直接修改的?12345void main(){ const int a = 3; a=1;} 在C++中const修饰的常量,不能被直接修改,但是可以通过指针进行间接修改来看下面的例子:运行后输出 5 3 单步执行,利用内存窗口进行查看,未修改前a为3当利用指针间接修改a后,a在内存中显示5 原意是想通过指...
缺少双引号的字符串转换成Json对象

缺少双引号的字符串转换成Json对象

今天写接口遇到一个问题,前段传过来的密文解密之后,生成的字符串中不包含引号,所以直接转换成Json的时候报错了。网上找了半天,也没发现有什么好的方法去解决,所以就用基础的套路,自己转换字符串。第一种情况解密之后的字符串是下面这个样子的:String jsonStr = "{appkey:zkkOpNJ1Jo,adtype:1,appid:33e496d5fec,deviceid:15d994b}";直接JSONObject jsonObject = JSO...
Python实现在类中动态添加属性和生成对象

Python实现在类中动态添加属性和生成对象

程序的主要功能现在有个存储用户信息的像表格一样的文档:第一行是属性,各个属性用逗号(,)分隔,从第二行开始每行是各个属性对应的值,每行代表一个用户。如何实现读入这个文档,每行输出一个用户对象呢? 另外还有4个小要求:每个文档都很大,如果一次性把所有行生成的那么多对象存成列表返回,内存会崩溃。程序中每次只能存一个行生成的对象。用逗号隔开的每个字符串,前后可能有双引号(”)或者单引号(’),例如”张三“,要把引号...
Python 入门学习之数据类型、字符串、运算符

Python 入门学习之数据类型、字符串、运算符

最近开始学Python,这是一个很强大和便捷的编程语言,日后进行科学计算和科研的时候必然成为主要的编程语言。本来买了一本Python基础教程(第2版),然而教学顺序不太喜欢,因为一开始并没有讲清楚语法,不能学了立马用到实验中。并且,这本书针对的是没有编程基础的人,讲的比较浅。Python基础教程(第2版)高清晰PDF+源代码 下载 http://www.linuxidc.com/Linux/2016-08/134336.htm在这里把python中特有的,...
Hibernate 更新部分字段的实现

Hibernate 更新部分字段的实现

在Hibernate 中,有时我们只需要更新部分字段,此时如果使用update()方法,会将所有字段都更新,对于没有set的字段,就会设置成NULL,如果这些字段里面有非空的字段就会报错。解决的方法可以直接写HQL语句,但是如果字段较多,并且更新的字段是不确定的时候,直接写HQL语句就显得比较麻烦。另一种方法是在XML文件中设置dynamic-update="true",这样设置以后,只对set了的字段更新,没有set的字段就不会更新。<class ...
Hibernate中延迟加载和缓存

Hibernate中延迟加载和缓存

什么是延迟加载?延迟加载是指当应用程序想要从数据库获取对象时(在没有设置lazy属性值为false),Hibernate只是从数据库获取符合条件的对象的OId从而生成代理对象,并没有加载出对象访问该对象的属性时才会加载出相应的值。简答来说就是尽可能的减少查询的数据量。如何配置延迟加载在Hibernate中通过.hbm配置文件中的lazy属性来陪值,并且lazy属性出现的位置不同其作用和取值也不同。下面来详细介绍其在不同位置的不同取值和作用类Class标签中...
Java中字符串内存位置浅析

Java中字符串内存位置浅析

前言之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放到哪里的,这个应该是放到堆里面的,后来又问到String的引用是放在什么地方的,当时傻逼的说也是放在堆里面的,现在总结一下:基本类型的变量数据和对象的引用...
JVM内存回收对象及引用分析

JVM内存回收对象及引用分析

自动垃圾回收是Java相较于C++的一个重要的特点,想了解JVM的垃圾回收机制,首先我们要知道垃圾回收是回收什么地方的垃圾,我在我的上一篇文章《JVM内存区域划分》里面有写到JVM里面的内存是怎么分布的,这里的回收主要是指对上文中提到的Java堆和方法区的内存的回收。什么样的对象可以被回收知道了回收哪里的内存之后,我们还需要知道什么样的对象是可以被回收,或者说是需要被回收的,这些对象我们称之为死掉的对象。那么哪些对象是死掉了的呢?我们说当一个对象不存在任何...
Java入门知识:Lambda表达式

Java入门知识:Lambda表达式

一、函数式接口函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口。java 8提供 @FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口),虚拟机会自动判断, 但 最好在接口上使用注解...
对socket编程的理解

对socket编程的理解

最近看了看socket网络编程,对于我这种一点经验都没有的选手来说只能理解一点点吧。所以在此记录一下最近的收获。 socket编程无非就那几个函数,对于服务端来说,主要的为socket(),bind(),listen(),accept(),close()。对于客户端来说主要为connect(),close()等。当然,我所说的只是针对tcp协议而言的。对于udp而言,就可以简单很多,服务端和客户端都建立socket并进行绑定,从而用sendto()和re...
JVM ClassLoader加载过程

JVM ClassLoader加载过程

JVM ClassLoader加载过程1)三个类加载器:bootstrap classloader- 引导(也称为原始)类加载器,它负责加载Java的核心类。extension classloader- 扩展类加载器,它负责加载JRE的扩展目录中JAR的类包。system classloader- 系统(也称为应用)类加载器,加载应用程序的类。bootstrap classloader不是一个真正的ClassLoader实例2)获取引导类加载器加载了哪些类...
Java多线程相关知识

Java多线程相关知识

Java多线程相关知识整理分享。1)wait() notify() sleep()sleep是Thread类的函数,wait和notify是Object的函数。sleep的时候keep对象锁,wait的时候release对象锁。sleep时监控状态依然保持。wait进入等待池,只有针对该对象发出了notify才会进入对象锁池。Sleep时间过了就会恢复运行,wait后等到notify了,也不一定是立即运行。Wait和notify是非static函数,sle...
Spring编程式事务管理

Spring编程式事务管理

在基于数据库的应用中,事务是非常重要的。为了方便使用,Spring提供了基于XML和基于注解的方式配置事务,思路都是使用AOP,在特定的切入点统一开启事务,以方法为粒度进行事务控制。并且定义了事务的传播属性,规定了配置了事务的方法互相嵌套调用时的行为准则:PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。P...
Java实现直接选择排序

Java实现直接选择排序

选择排序是常用内部排序的一种,常见的实现算法有直接选择排序算法和堆排序算法,选择排序的基本思想是每次从待排数据中选择第n小的数据放到排序列表的第n个位置,假如共有N个数据待排,那么经过N-1次排序后,待排数据就已经按照从小到大的顺序排列了。 直接选择排序算法的思想比较简单:(假设数据放在一个数组a中,且数组的长度是N) 1:从a[0]-a[N-1]中选出最小的数据,然后与a[0]交换位置 2:从a[1]-a[N-1]中选出最小的数据,然后与a[1]交...
<< 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 >>