首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏软件开发-青出于蓝

    JDK之JVM中Java对象的头部占多少byte

    Stackoverflow上看到的Java对象头部mark word和kclass pointer的大小     从Stackoverflow上看到,Java对象头部有一个mark word和一个klass 注意:我电脑上装的JDK1.8,64位的 2.1 验证Java对象的头部占用byte数     如下: List-1 mjduan@mjduandeMacBook-Pro:/tmp % java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit 所以可以看到数组和普通的Java对象头部是有区别的。 图4 List-5的运行结果     我们来对比下图3和图4的结果,图3中显示对象占了16bytes,但是图4中显示对象占了24bytes。

    1.5K50发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Redis之SpringDataRedis对象写入到Redis中

    先来定义实体类,如下List-3和List-4 List-3 Department.java /** * @author dmj1161859184@126.com 2018-09-18 01:21 this.officeStaffs = officeStaffs; this.strings = strings; } } List-4  OfficeStaff.java AllArgsConstructor public class OfficeStaff { private String name; private Integer age; }     如下List \",\"name\":\"System\",\"officeStaffs\":[\"java.util.ArrayList\",[{\"@class\":\"com.mjduan.project.objectRedisTemplate.model.OfficeStaff 思考: List-5中,Department并没有名为"@class"的属性,那么它是怎么被添加进去的呢,这个问题暂时不研究了。

    1.2K30发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Linux之安装Tomcat8 原

    environment export JAVA_HOME=/opt/app/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=. :${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #tomcat export TOMCAT_HOME=/opt tomcat8 exec "$PRGDIR"/"$EXECUTABLE" stop "$@" [root@iZwz9bjiawhqzfsklyht4rZ bin]#     执行shutdown.sh,如下图List -5,这样就关闭了 List-5 [root@iZwz9bjiawhqzfsklyht4rZ bin]# . tomcat-users.xsd -rw------- 1 root root 169566 6月 29 22:44 web.xml [root@iZwz9bjiawhqzfsklyht4rZ conf]#     修改List

    1.3K40发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之RequestBodyAdvice的使用

    RequestBodyAdvice的实现     有人用RequestBodyAdvice来做参数的解密(前端传过来的是加密的),或者使用RequestBodyAdvice进行全局统一返回,但是我的需求是只对Java     RequestResponseBodyAdviceChain的afterBodyRead中,调用getMatchingAdvice方法,获取RequestBodyAdvice类型的advice,如下List advice.afterBodyRead(body, inputMessage, parameter, targetType, converterType); } } return body; } List ; } else { throw new IllegalArgumentException("Unexpected adviceType: " + adviceType); } }     List ArgumentResolverAdvice 4处判断这个类是否是RequestBodyAdvice类型,如果不是则不会加到结果集,所以就是我们要实现RequestBodyAdvice的原因     List

    3K30发布于 2020-07-01
  • 来自专栏软件开发-青出于蓝

    OpenJDK之CountDownLatch

    return nextc == 0; } } }     CountDownLatch里面有个内部类Sync继承了AbstractQueuedSynchronizer——这个类在java.util.concurrent.locks } } finally { if (failed) cancelAcquire(node); } } 2.countDown() List -5 public void countDown() { sync.releaseShared(1); }     如List-5,内部调用了Sync的releaseShared(1),即释放1 Reference http://openjdk.java.net/

    64450发布于 2019-10-24
  • 来自专栏软件开发-青出于蓝

    Springsecurity-oauth2之ClientDetailsService

    2 InMemoryClientDetailsService package org.springframework.security.oauth2.provider.client; import java.util.HashMap ; import java.util.Map; import org.springframework.security.oauth2.provider.ClientDetails; import org.springframework.security.oauth2 来看下ClientDetailsRowMapper,如下List-5,最终返回的是BaseClientDetails。 List-5 private static class ClientDetailsRowMapper implements RowMapper<ClientDetails> { private JsonMapper

    5.6K41发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Guice学习 原

    transactionLog.logConnectException(e); return Receipt.forSystemFailure(e.getMessage()); } } } 3.测试 List BillingService.class); billingService.chargeOrder(new PizzaOrder(), new CreditCard()); } }     List 图1 List-5的运行结果 (adsbygoogle = window.adsbygoogle || []).push({});

    63730发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之ClassPathBeanDefinitionScanner

    scanning"); } catch (ClassNotFoundException ex) { // JSR-250 1.1 API (as included in Java ScannedGenericBeanDefinition,所以这个俩个处理方法都会被调用,我们来看下AnnotationConfigUtils.processCommonDefinitionAnnotations,如下List -5: List-5 public static void processCommonDefinitionAnnotations(AnnotatedBeanDefinition abd) { List-5中处理完了后,回到List-2,方法registerBeanDefinition将这个BeanDefinition注册到Spring容器中。 2.

    1.1K20发布于 2019-06-28
  • 来自专栏软件开发-青出于蓝

    Mybatis源码阅读之一 原

    如下List-5所示: List-5 public class MapperFactoryBean<T> extends SqlSessionDaoSupport implements FactoryBean List-5的getObject()中,调用父类SqlSessionDaoSupport的方法getSqlSession(),来看下SqlSessionDaoSupport,如下List-6 List 不过还是遗留了很多问题,比如最重要的,List-5中SqlSessionTemplate的.getMapper(this.mapperInterface)方法底层上是如何实现的。

    72720发布于 2019-05-15
  • 来自专栏软件开发-青出于蓝

    Spark之Ubuntu18上安装Spark单机环境

        安装JDK,步骤略, List-1 mjduan@mjduan-ubuntu:~$ java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)     SCALA_HOME/bin:$PATH #spark export SPARK_HOME=/opt/software/tool/spark export PATH=$SPARK_HOME/bin:$PATH List WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111) Type in expressions to have them evaluated.

    1.3K30发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Mybatis之ResultSetHandler

    则会报错 4处获取resultMap,从List中 5处是核心,调用handleResultSet->handleRowValues->handleRowValuesForSimpleResultMap List List-5的1处,调用getRowValue方法,该方法获取resultSet中的一行数据,并将数据封装位对象 List-6 private Object getRowValue(ResultSetWrapper 回到List-5中,getRowValue方法返回值,storeObject方法中将值放入到List中。     描述较为泛华,建议个人阅读源码。

    1.6K20发布于 2019-10-21
  • 来自专栏软件开发-青出于蓝

    SpringFramework之@Controller/@RequestMapping解析

    handlerMethodsInitialized(getHandlerMethods()); }     来看List-4中的方法detectHandlerMethods,传入的是String类型的bean name,如下List List-5 protected void detectHandlerMethods(Object handler) { Class<? builder.customCondition(customCondition); } return builder.options(this.config).build(); }     List

    75420发布于 2019-07-01
  • 来自专栏软件开发-青出于蓝

    JDK之动态代理后方法间相互调用不触发拦截

    objects); System.out.println(method.getName()+" 后"); return result; } }     来测试下,如下List HelloWorldSubject.class.getInterfaces(), new JdbcDynamicalProxy(subject)); instance.print(); } } List

    65220发布于 2020-07-13
  • 来自专栏软件开发-青出于蓝

    MySQL之benchmark优化一 原

    =4 --mysql-host=localhost --mysql-db=foo --mysql-user=root --mysql-password=密码 prepare 2. run分析结果 List events (avg/stddev): 7.9940/3.22 execution time (avg/stddev): 10.2680/0.14     从List-3和List

    1K10发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Springboot之AbstractApplicationEventMulticaster

    Springboot中SpringApplicationRunListener的默认实现有个EventPublishingRunListener,如下List-5所示 List-5 public class 如List-5中所示,Springboot启动的不同阶段,会传不同的event实现给EventPublishingRunListener,而EventPublishingRunListener则用Delete

    1.2K30发布于 2019-08-05
  • 来自专栏软件开发-青出于蓝

    SpringFramework之HandlerInterceptor

    的最后,有如下List-4,调用HandlerExecutionChain的triggerAfterCompletion,会逆序调用HandlerInterceptor的afterCompletion,由List = null) { mappedHandler.triggerAfterCompletion(request, response, null); } } List-5 void triggerAfterCompletion threw exception", ex2); } } } } 位置7/8,如果之前的步骤抛出异常,就会到步骤7/8,调用triggerAfterCompletion,并将异常作为参数传入,由List

    92130发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Springboot中@Ehable**学习 原

    com.mjduan.project.springbootlearn.selector.SelectorB"}; } }     之后定义自己的EnableMyX,如下List-3 List-3 import java.lang.annotation.Documented ; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy ; import java.lang.annotation.Target; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME SpringbootLearnApplication.class, args); } }     我们通过BeanPostProcessor来验证SelectorA和SelectorB加入到容器中了,如下 List

    39730发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之ReflectiveMethodInvocation

    ReflectionUtils.makeAccessible(method); return method.invoke(target, args); ... }     如下的List List-5 public class AspectJAfterAdvice extends AbstractAspectJAdvice implements MethodInterceptor,

    1.6K20发布于 2019-07-15
  • 来自专栏软件开发-青出于蓝

    Spark集群安装 原

    List-4 export JAVA_HOME=/opt/jdk1.8 export HADOOP_HOME=/opt/hadoop-2.7.7 export SCALA_HOME=/opt/scala2.12 spark-defaults.conf     cp  spark-defaults.conf.template  spark-defaults.conf,之后修改spark-defaults.conf,如下List List-5 spark.eventLog.enabled true spark.eventLog.dir hdfs://master:9000/opt/

    65330发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Spark集群安装方式2 原

    spark-env.sh文件(如果不存在,则cp  spark-env.sh.template   spark-env.sh),修改为如下List-2,这个修改三台机器上都要做: List-2 export JAVA_HOME spark-mjduan/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out,可以看到master url和masterWebUrl: List

    43310发布于 2019-05-06
领券