ICode9

精准搜索请尝试: 精确搜索
  • C# GDAL编码问题3——读取中文图层2020-09-29 08:02:04

    mdb总是会出现乱码问题,读取中文图层类似于读取中文属性一样,写一个扩展方法,调用API来处理。首先得找到API的名称: 然后编写扩展方法: [DllImport("gdal204.dll", EntryPoint = "OGR_L_GetName", CallingConvention = CallingConvention.Cdecl)] public static extern System.IntPtr

  • java-semaphore(令牌)2020-09-28 21:31:37

    对于semaphore实际是提供了单机版的令牌机制,且对于等待获取令牌的线程提供了公平和非公平两种方式; public static void main(String[] args) { final int MAX_VALUE = 5; ExecutorService executorService = Executors.newFixedThreadPool(Byte.MAX_VALUE);

  • 前端同学经常忽视的一个JavaScript面试题2020-09-28 14:32:56

    题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function () { alert (4);}; function getName() { alert (5);} //请写出

  • synchronized类锁,方法锁,块级锁,一文看懂2020-08-19 09:32:16

    先说结论: 1.synchronized加到静态方法上 调用静态方法时会锁住此类,如果此类有2个静态方法都加上了synchronized则同一时刻只能有一个静态方法被调用 2.synchronized加到普通方法上 该类的实例(实例指new出来的对象)同一时刻只能调用一个方法,如果多个线程同时调用该实例的多个synchro

  • TypeScript 方法装饰器2020-08-06 08:32:05

    /** * 装饰器永远是个方法,方法的装饰器,里面的三个参数是规定好的 * * @param target 普通方法 target 对应的是类的 prototype * 静态方法 target 对应的是类的构造函数 * * @param key 装饰方法的名字 * * @param descriptor */ function getNameDeco

  • java中toString方法2020-07-25 12:00:20

    简而言之:就是返回一个字符串对象,显示的格式为这样子: getClass().getName() + '@' + Integer.toHexString(hashCode())    所以在实体类中我们都会重写toString()方法,可以显示一些有意义的东西,例如    下面这篇有更详细的介绍    https://blog.csdn.net/ITBigGod/article/

  • 性能对比分析(普通方法/反射/反射关闭检测)2020-07-17 21:01:46

    性能对比分析(普通方法/反射/反射关闭检测) import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; //分析性能问题 public class Test10 { //普通方式调用 public static void test01(){ User user = new User(); lon

  • form表单自定义调接口校验2020-07-10 14:05:50

    // 校验角色名字唯一 getName = (rule, value, callback) => { const { dispatch } = this.props; const { recodes } = this.state; if (value) { //这里调后端接口 dispatch({ type: 'roleModel/getName', payload: { ro

  • 一文读懂Java线程状态转换2020-06-19 09:57:00

    主要以代码示例说明线程状态如何转换。 基础知识 1. 线程状态 线程可以有6种状态: New(新建) Runnable(可运行) Blocked(被阻塞) Waiting(等待) Timed waiting(计时等待) Terminated(被终止) New:new Thread()后线程的状态就是新建。 Runnable:线程一旦调用start()方法,无论是否运行,状态都为Run

  • 【Lambda表达式】让你的代码逼范十足~~2020-06-11 15:02:24

    【关于Lambda表达式】 Lambda表达式是 JDK8的新特性,可以取代大部分的匿名内部类,写出更优雅简洁的Java代码,我在日常撸代码的时候常用的地方是集合的遍历和其他集合操作中,极大的优化了代码结构,总之一句话就是少写代码,可以提高我们的编程思维,话不多说,上Demo~~~ Lambda表达式提

  • 你真的了解java class name吗?2020-05-11 14:38:30

    在面向对象的世界,Class是java的基础。java.lang.Class实际上是继承自java.lang.Object。 class有一个方法叫做getName,该方法会返回(class, interface, array class, primitive type,或者 void)的Class名字。 如果你经常调试JVM的话,会看到下面这样奇怪的内容: jcmd 1234 GC.cl

  • 十四.java反射机制2020-05-01 19:57:03

    1.反射是Java提供的一种运行机制,代码运行时动态的获取一个类型的各种信息,以及相关的一系列操作   Java中每一种类型,都有且仅有一个Class对象与之对应,每种类型在进行类加载之后,JVM会在内存中自动生成一个Class类型对象   Student.java---->Student.class--->类加载--->成功----

  • 私有变量2020-04-02 13:54:25

    class Student(object): ''' 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线 些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定, 当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私

  • JavaBean规范2020-03-27 22:55:51

    简介 JavaBean就是一个普通的java类,必须遵守以下规则的java类才能称为javabean。  1)必须有一个无参的构造方法  2)把类的属性私有化。(不能直接访问属性)  private  3)必须提供公开的getter和setter方法。(通过getter和setter操作属性) 场景   1)项目的实体对象符合javabean的

  • JavaScript异步问题如何解决2020-03-26 11:03:47

    //下面代码存在两个问题,只允许修改Obj构造函数及其原型使程序正常执行 function initData(callback){     setTimeout(()=>{         callback.call("hello")     },2000) } function Obj(){     this.o = null  ;     this.init();  } Obj.pro

  • [心得笔记]多线程之间的内存可见性问题2020-03-24 10:02:05

    每个线程都有自己的缓存块, 会将主存中的变量缓存到各自的缓冲区中, 每次线程的读取和写入的都是自己缓存区变量, 所以在改变缓冲区变量的时候还有一个过程就是同步主存相应变量的过程, 但是这个过程要看线程是否有多余的时间去同步使用 volatile可以解决线程内存可见性的问题, 但

  • 【分布式锁】05-使用Redisson中Semaphore和CountDownLatch原理2020-03-23 10:53:35

    前言 前面已经写了Redisson大多的内容,我们再看看Redisson官网共有哪些组件: image.png 剩下还有Semaphore和CountDownLatch两块,我们就趁热打铁,赶紧看看Redisson是如何实现的吧。 我们在JDK中都知道Semaphore和CountDownLatch两兄弟,这里就不多赘述,不了解的可以再回头看看。 Semaphor

  • 一道常被人轻视的前端JS面试题2020-03-22 11:53:21

    此题是用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者过于轻视他。 function Foo(){ getName = function(){alert(1);}; return this; } Foo.getName = function(){alert(2);}; Foo.prototype.getN

  • 并发编程(二)2020-03-19 19:04:23

    1. 并发工具类   1.1 CountDownLatch   CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。   countDown()实现计数器-1   await()等

  • 并发工具和线程池2020-03-19 16:04:51

    1.并发工具类 1.CountDownLatch:可以实现线程计数,阻塞后续线程 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 countDown()

  • Java单体应用 - 架构模式 - 03.设计模式-22.空对象模式2020-03-13 20:57:03

    原文地址:http://www.work100.net/training/monolithic-architecture-design-patterns-null-object-pattern.html更多教程:光束云 - 免费课程 空对象模式 序号 文内章节 视频 1 概述 - 2 实现 - 请参照如上章节导航进行阅读 1.概述 在空对象模式(Null Object Pattern)中,一

  • 利用JAVA反射简单开发——查询某一类包含的所有方法及变量2020-03-13 19:42:15

    创建查询类GetObjClassMessage.java编写查询 package mainClass; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * @Title:GetObjClassMessage.java * @Description:获取传入数据 obj 该对象类型的所属类的信息 * @author:拾贰丶 * @date:

  • 详述SpringAOP2020-03-07 15:42:45

    目录   一、AOP是什么 二、为什么要用AOP 三、AOP中的几种方法注释 (1)@Before (2)@After (3)@AfterReturning  (4)@AfterThrowing  (5)@Around 一、AOP是什么 Aspect Oriented Programming(AOP)是较为热门的一个话题。AOP,国内大致译作“面向切面编程”。 “面向切面编程”,这样的名字并

  • 详述Spring AOP中的@Before,@After,@AfterReturning,@AfterThrowing和@Around2020-03-05 21:03:53

    AOP的定义:AOP将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。  

  • Java8-stream findAny()注意点2020-02-06 09:02:32

    用findAny()寻找List中符合要求的数据 这段代码如果找不到数据就会抛异常。 A a = bList().stream().filter(b -> "test".equals(b.getName())).findAny().get(); 这段代码如果找不到数据会返回null。orElse()是设置找不到数据后的默认值。 A a =bList().stream().filter(b->"t

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有