技术文章

synchronized和锁(ReentrantLock) 区别

旧巷老猫 提交于 2021-02-17 18:47:39
synchronized和锁(ReentrantLock) 区别 java的两种同步方式, Synchronized与ReentrantLock的区别 并发(一):理解可重入锁 可重入锁和不可重入锁 ReentrantLock & synchronize Java并发之ReentrantLock详解 1 package mianshi.test; 2 3 import java.util.concurrent.TimeUnit; 4 import java.util.concurrent.locks.ReentrantLock; 5 6 class ReentrantLockTest { 7 public static ReentrantLock reenT = new ReentrantLock(); // 参数默认false,不公平锁 8 private ReentrantLock lock = new ReentrantLock( true ); // 公平锁 速度慢与不公平锁 9 10 /** 11 * 使用场景:(1)比如一个定时任务,第一次定时任务未完成,重复发起了第二次,直接返回flase; 12 * (2)用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行 13 */ 14 public static void tryLockTest() {

第一周作业

旧街凉风 提交于 2021-02-17 18:47:24
#一.我对咱专业的认识 基本概念:计算机科学与技术是一门设计和使用计算机的理论和实践基础,包括处理、存储和传输数字信息的算法学习的学科(前期重理论,后期偏实践) 目前状况:计算机在目前的应用很广泛,在人工智能,软件开发,信息管理等等领域都离不开计算机,很多大型的工程对计算机的依赖性更大 学习内容:这个专业在大学期间主要学习计算机组成原理、计算机网络、操作系统、数据结构、语言编程等等 未来就业:在这个数字信息迅速发展的当下,计算机无处不在,无孔不入,无所不能,哪里有电脑,哪里就需要咱 #二.C语言的神秘面纱 地位:在很多领域无可替代,几乎所有和硬件打交道的地方都得要用C语言,目前为止世界上最流行,使用最广泛的高级语言之一 作用:设计系统语言,编写应用程序 优劣:适用范围大,可移植性好;C语言程序生成代码质量高,程序执行效率高。缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别。 应用:C语言主要用于底层开发,Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发,开发硬件驱动,让硬件和操作系统连接起来,这样,用户才能使用硬件、程序员才能控制硬件。 #三.希望学到的内容 掌握基础的编程语言,在此基础上进一步学习熟练C++、Java、Python等等进阶语言 学习掌握编写程序,开发软件的能力

Java异常处理之InvocationTargetException(反射异常)

我的未来我决定 提交于 2021-02-17 18:46:47
<div id="cnblogs_post_body" class="blogpost-body"><p><strong><span style="font-size: 18pt;"> Java异常处理之InvocationTargetException(反射异常)<br></span></strong></p> <p> </p> <p>InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。<strong><span style="font-size: 16px;"><span style="color: #ff0000;">当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收!!!</span></span></strong></p> <p><strong>示例:</strong></p> <div class="dp-highlighter bg_java"><ol class="dp-j" start="1"> <li class="alt"><span class="keyword">package com.zzj.test.reflect;  </span></li> <li>  </li> <li class="alt"><span class="keyword">public <span

DevExpress v17.2新版亮点——Data Access

僤鯓⒐⒋嵵緔 提交于 2021-02-17 18:46:20
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了Data Access v17.2 的新功能,快来下载试用新版本! 点击下载>> 实体框架数据源 新的API可在运行时实现服务器端数据过滤。 用于WinForms和WPF的Data Source Wizards允许您过滤实体框架数据源表。 增强表达式编辑器 表达式编辑器自定义公共API。 改进的表达式编辑器GUI包含对函数描述和工具提示的丰富文本支持。 Query Builder 新版本包含了使用DevExpress Query Builder在运行时编辑或添加查询的新方法。 XPO 支持.NET Core / .NET Standard 2.0(Beta) 从必须具备的功能(如数据分组和集成可视化设计器)到WCF客户端支持,从动态池到高负载系统中的数据缓存...... XPO为您的下一个.NET Core应用程序带来无与伦比的数据管理功能。 最流行的RDBMS - SQL Server,MySql,PostreSQL,SQLite - 已经得到支持,而且更多的正在开发中。 增强ORM Data Model Wizard 使用Oracle托管数据访问驱动程序扩展数据库选择对话框。 支持运营商名称。 为Connect方法添加了一个'threadSafe'方法。

在家办公的我,砍需求砍得更狠了

こ雲淡風輕ζ 提交于 2021-02-17 18:45:28
https://www.hollischuang.com/archives/4465 开发十年,就只剩下这套架构体系了!! 最近全民开始了在家办公模式,目前看来这种模式还要持续很长的一段时间,至少要到3月份才能有可能回到公司办公了。 其实,在哪办公对于程序员来说其实差别并不是很大,无非就是在哪敲代码而已。 时间很快,从在家办公开始,一直想说点什么,但是一直都没落笔,现在已经两周多了,是时候写点什么了,这两周给我最大的感受有两点。 一、会议比以前多了 在家办公之后,每天都是各种电话会议、视频会议、语音会议等等。 在公司办公的时候,只有有一些大事,如需求评审、设计评审之类的才需要开会,还有就是项目晨会或者团队周会之类的。 但是在家办公之后,每天会被拉着参加各种会议,以下是我某一天的会议日程:  从早上9点,到晚上8点,一直都有会议,甚至有时候还有很多会议时间是重合的。 这时候就体现出在家办公的好处了,我就可以同时参加多个会议。钉钉视频会议开一个,手机电话会议开一个。不需要我的时候我就把我的麦禁掉。 比如有些会议,我只是负责把相关人员拉在一起,大家讨论下,最终得到一个结果,我发个邮件出来就好了。这种我就不需要发言,只需要听着就行了。 还有的一些会议,如技术方案评审之类的,可能会议中只有一小部分是和我相关的,那么我只需要再讨论这部分的时候开麦发言就好了。 如果是在公司开会

鸿蒙和安卓,到底有什么区别?

可紊 提交于 2021-02-17 18:36:40
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 3.5 分钟。 来自: 程序员小枫 在 9 月 10 日召开的华为开发者大会上,宣布了鸿蒙2.0 系统正式面世,同时开启了 Beta 版本的测试和开源网站。 对于开发者来说两个最关键的点值得关注: 一个是 Beta 版的开发工具,一个是开源网站。 开源网站 在开发者大会上宣布将 HarmonyOS源代码捐赠给中国开放原子开源基金会,并在大会上公布了鸿蒙系统的开源路线。 OpenHarmony 官方源码地址: https: //openharmony.gitee.com/openharmony 开发工具 鸿蒙使用基于 Intellij IDEA 深度定制研发的 DevEco Studio 作为其开发工具。 DevEco Studio 下载地址: https: / /developer.harmonyos.com/cn /develop/deveco -studio 那么,在应用开发过程中,HarmonyOS(鸿蒙)和 Android(安卓)开发环境有什么不同呐? HarmonyOS 项目和 Android 项目对比 资源目录的变更 ①资源目录名称有更改 安卓 res 目录,这里用 resources 目录,它包括 base 和 rawfile 两部分,其中 base 是核心的资源目录,常用的都放在这里面

storm小总结(持续更新)

此生再无相见时 提交于 2021-02-17 18:34:33
worker:topology的进程。 executor:线程,由worker产生。 task:具体一个 spout/bolt的实例。 thread和task关系:一个thread可以运行多个实例,但是如果不显示设定task数量:setNumTasks(n),一个thread默认执行1个实例。 setBolt("name","new ABolt()",3).setNumTasks(4); 这里thread数量为3,ABolt的实例化个数=4. 以上举例来说: worker一共=2, parallelism=2+2+6=10, "blue-spout"有thread=2,每个线程执行默认1个task。 "green-bolt"有thread2个,但设定了有4个bolt实例,则每个thread执行2个task。 "yellow-bolt"有thread6个,每个thread执行默认一个task。 具体由下图显示: 来源: oschina 链接: https://my.oschina.net/u/1399748/blog/501058

分布式锁的实现(java)

南楼画角 提交于 2021-02-17 18:33:50
  当对接第三方接口时,往往会碰到同一时间发送了大量相同的请求,这个时候或许就是第三方发送接口的失误了。而我们需要做的就是针对这个情况来强化我们的系统。这个时候就需要用到分布式锁。让这些请求只有一个能发送进来。 分布式锁的实现一般有三种: 基于数据库的乐观锁; 基于redis的分布式锁; 基于zookeeper的分布式锁。   这里我们讲的是第二种:基于redis的分布式锁的原理以及实现。 下面是代码的实现: public class DistributeLock { /** * setnx(key,value):如果key-value存在,缓存成功并返回1,否则返回0. * getset(key,value):返回旧的value,然后更新旧的value为新的value. * expire(key,seconds):设置key的过期时间为seconds秒. * get(key):获取key对应的value,不存在返回nil. */ private final static long expire = 1000; // 设置锁的过期时间 public static boolean getLockByRedis(Jedis jedis,String lock){ boolean success = false ; long flag = jedis.setnx(lock, String

​前端通往架构师之路

我与影子孤独终老i 提交于 2021-02-17 18:27:21
作者:吕小鸣 链接:http://www.imooc.com/article/291995 前端架构师, 听起来就是个很高大上的职位,在大多数程序员的眼中,架构师一般从事后端开发,Java或者C++出身,它们往往拥有这十八般武艺,可以解决业务中出现的各种问题。好像架构师就从来没有和前端有过关系,那么真的是这样么,通读此文,便可豁然开朗。 前端的意义 首先,我们先来谈谈本职工作,前端的意义。前端源自用户界面,是最先和用户接触的地方,也是衡量一个项目产品好坏的第一道关口。 到底什么是前端 从最早的DOS系统说起,那时是没有前端的概念的,大多数的软件界面显示的都是冷冰冰的黑底白字的控制台命令,于是,慢慢的不仅是用户,就连广大的程序员也不满足现状,开发出一套图形化的用户界面,让一些功能更加便于操作。那时前端叫做GUI(图形用户界面)。还没有区分出多端的概念,大多数是基于操作系统开发出的原生界面。 上图来自DOS系统经典软件DOS Navigator 随着互联网的发展,第一代浏览器Netscape(网景浏览器)的诞生以及后续的IE系列浏览器的到来,”网上冲浪“这个词逐渐进入到大多数的用户生活中。直到现在大行其道浏览器Chrome,以及国内各种百花齐放的浏览器。主要给浏览器服务,实现各种特效的JavaScript语言,迎来了第一波春天。 上图来自网景浏览器 直到现在,前端逐渐拆分成:

基于TypeScript从零重构axios

血红的双手。 提交于 2021-02-17 18:14:12
download: 基于TypeScript从零重构axios 本课程首先讲解TS的基础语法和常见用法,然后带同学使用TS去实现一个完整的axios JS库,进行完整的单元测试,最后把开发的JS库打包并发布到npm上。通过课程学习掌握axios的实现原理,修炼原生JS内功,提升职场竞争力。 适合人群 1-5年前端开发人员 技术储备要求 有良好的原生JavaScript功底 熟悉ES6常见的语法和API 1、ping(测试网络连通) 命令所在途径:/bin/ping 命令执行权限:一切用户 -c 指定ping次数 -s 指定探测时数据包的大小 2、ifconfig(查询本机网络信息) 命令所在途径:/usr/sbin/ifconfig 执行权限:root ifconfig命令运用办法 留意:下面操作运用root用户(动态修正) 命令:ifconfig 作用:用来配置网络或显现当前网络接口的状态(以本机ens33示例) ![]() 上图信息大约阐明: 第一行:up-->网卡开启状态 [在BROADCAST(播送)之后,(此处未显现)RUNNING-->网线处置衔接状态] MULTICAST-->支持组播 mtu 1500-->(Maximum Transmission Unit)最大传输单元大小为1500字节 第二行:该网卡的IP地址,子网掩码,播送地址 第三行:IPV6的配置信息