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

首页 / 操作系统 / Linux

Java进行二元操作类型转换

Java进行二元操作类型转换

当对两个数值进行二元操作时,先要将两个操作数转换为同一种类型,然后再进行计算。如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。否则,如果其中一个操作数是float类型,另一个操作数就会转换为float类型。否则,如果其中一个操作数是long类型,另一个操作数就会转换为long类型。否则,两个操作数都将转换为int类型。对于最后一点,即使操作数是short等类型也会转换为int类型进行计算。如:short b = 1;b =...
Linux 多线程信号量同步

Linux 多线程信号量同步

PV原子操作P操作:如果有可用的资源(信号量值>0),则此操作所在的进程占用一个资源(此时信号量值减1,进入临界区代码);如果没有可用的资源(信号量值=0),则此操作所在的进程被阻塞直到系统将资源分配给该进程(进入等待队列,一直等到资源轮到该进程)。V操作:如果在该信号量的等待队列中有进程在等待资源,则唤醒一个阻塞进程;如果没有进程等待它,则释放一个资源(即信号量值加1)。信号量模型定义信号量 sem_t sem初始化信号量 sem_init()获取...
Linux 多线程互斥量同步

Linux 多线程互斥量同步

同步同一个进程中的多个线程共享所在进程的内存资源,当多个线程在同一时刻同时访问同一种共享资源时,需要相互协调,以避免出现数据的不一致和覆盖等问题,线程之间的协调和通信的就叫做线程的同步问题, 线程同步的思路: 让多个线程依次访问共享资源,而不是并行互斥VS同步互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序...
Linux 多线程编程

Linux 多线程编程

概念原来指向main()的线程叫做主线程(main thread)使用pthread_create()创建出来的线程,叫做子线程(child thread)主/子线程只有在创建时才有区别, 创建完了就一视同仁, 都是一样的独立个体, 可以有交流、共享和私有, 但没有上下级, 这一点和多进程一样, 只有在创建的瞬间才有parent process 和child process 的区别, 创建完了就都是一样的独立个体创建完子线程之后,两个线程之间独立运行,线程...
Spring事务与消息队列

Spring事务与消息队列

在开发过程中,遇到一个bug,产生bug的原因是spring事务提交晚于消息队列的生产消息,导致消息队列消费消息时获取到的数据不正确。这篇文章介绍问题的产生和一步步的解决过程。一.问题的产生:场景还原:接口中的一个方法,首先修改订单状态,然后向消息队列中生产消息,消息队列的消费者获取到消息检测订单状态,发现订单状态未更改。代码:@Service(orderApi)public class OrderApiImpl implements OrderApi {...
Struts2数据校验

Struts2数据校验

一.为什么要进行数据校验 对于一个web应用而言,所有的应用数据都是通过浏览器收集的,用户的输入信息是非常复杂的,对于一些用户操作不熟练,输入出错,等网络传输不稳定,这些都有可能导致异常输入。 异常的输入,轻则导致系统非正常中断,重则导致系统崩溃,应用程序必须能正常处理表现层接收的异常数据,通常的做法是遇到非法数据,应用程序将相应的给出用户提示,提示用户必须输入要求的数据,也就是将那些异常输入过滤掉,我们说对异常数据的过滤就是数据校验。二.如何实现数据校...
Struts2数据验证机制

Struts2数据验证机制

1. 手动验证的实现只需要在继承ActionSupport类的情况下,直接重写validate()方法即可。使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是相同的。如果在一个Action类中编写了多个请求处理方法,而此Action重写了validate()方法,那么,默认情况下,在执行每个请求方法的过程中,都会经过validate()方法的验证处理。2. 验证文件的命名规则使用Struts2验证框架,验证文件的名称...
Spring的IOC和AOP之深剖

Spring的IOC和AOP之深剖

我们首先要知道,用Spring主要是两件事:1、开发Bean;2、配置Bean。对于Spring框架来说,它要做的,就是根据配置文件来创建bean实例,并调用bean实例的方法完成“依赖注入”。Spring框架的作用是什么?有什么优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监...
Java Swing 去掉按钮文字周围的焦点框

Java Swing 去掉按钮文字周围的焦点框

闲来无事,写了个swing界面,运行后看到当点击按钮时,中间文字会出现一个刚好把文字围住的小方框,这是按钮获得焦点的标志,我是觉得一个字:丑!怎么去掉呢?万能的度娘告诉我,设置下button的setFocusPainted为false,我试了一下,果然ok。下面将代码分享给大家,可以将设置属性的那句话注掉,看看前后效果。import java.awt.event.ActionEvent;import java.awt.event.ActionListene...
Python使用Fabric模块实现自动化运维

Python使用Fabric模块实现自动化运维

简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。参考资料:刘天斯《Python自动化运维技术与最佳实践》 PDF下载见 http://www.linuxidc.com/Linux/2016-10/136025....
一段Golang代码引发的思考

一段Golang代码引发的思考

1.前言Golang有一些异于其他语言的特性,如果对这些特性不了解,看一些代码的时候经常就会感到莫名其妙。最近在看Kubernetes的一段代码时,由于没有深刻领会Golang的接口机制导致一脑袋雾水,当真正理解了之后,不得不佩服Golang的灵活性,堪称神一般的存在。2.分析这段代码的部分片段如下,详细内容在Kubernets github:https://github.com/kubernetes/kubernetes/blob/master/pkg/...
Golang 小技巧分享

Golang 小技巧分享

1.前言Golang 开发过程中的一些小技巧在这里记录下。2.内容1)包的引用经常看到Golang代码中出现 _ "controller/home" 类似这种的引用,这里的下划线有什么作用呢? 其实默认每个文件都有一个init函数,加下划线表示引入这个包,仅执行init函数,别的函数在外边是不能调用的。注意这里的几个说法:仅仅执行init函数,也就是说我们可以再init函数里面做一些操作,比如初始化一些东西。别的函数在外部是不能被调用的,强行调用会报错。这...
Java接口以及打包

Java接口以及打包

接口:现实世界中不同事物的共同行为(方法)的特征是一个特殊的类,interface修饰符 interface 接口名{//属性--常量//方法--抽象方法}接口中所有的方法为抽象方法。属性:public static final方法:public abstract1.不能被实例化;2.子类实现(implement)接口,子类需将接口中的方法全部实现 ,才能建立对象3.子类可以实现多个接口,子类需要接口的方法实现才能创建对象应用方式:1.抽象类--imple...
Java静态访问和抽象类

Java静态访问和抽象类

static: 成员修饰符 静态的意思 修饰属性和方法修饰的属性:静态变量或者类变量 因为类变量是随着类的加载而加载。类加载优先于对象 类变量相对于实例变量特点:1.类变量被所有实例对象共享2.访问方式 类名.类变量 直接访问。修饰方法:静态方法/类方法(实例方法)访问方式:类名.静态方法通过类.方法名调用能够简单 static修饰属性或者方法 会一直无法释放类变量 导致内存空间 被占用。实例成员与静态成员互访:静态成员可以访问静态 不能访问非静态非静态可...
<< 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 >>