C#学习笔记之四(Attribute, Reflection, Thread, Thread Synchronization)

java面试题 当线程 A 持有独占锁a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象,我们称为死锁。反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。 阅读详情

Atributes:
 //can add metadata in program, It store with the program
 //using ILDasm to check atributes
  
 //usage
 [CodeReviewAttribute("08/08/2005", "Allan Zhang",
  Comment = "That is a Attribute test")]
 class Employee {}

 //define target and atr
 [AttributeUsage(AttributeTargets.Class |
   AttributeTargets.Constructor |
   AttributeTargets.Interface |
   AttributeTargets.Method |
   AttributeTargets.Field |
   AttributeTargets.Property,
   AllowMultiple=true)]
 class CodeReviewAtrribute : System.Attribute
 {
  private string reviewDate;
  private string reviewerName;
  private string reviewComments;
  ...
 }
 
Reflections: //look the metadata in program, discory, late binding
 
 //Display attribute in Code
 System.Reflection.MemberInfo inf = typeof(Employee);
 object[] atributes = inf.GetCustomAttributes(false);
 foreach (object attribute in attributes)
 {
  CodeReviewAttribute attr = (CodeReviewAttribute) attribute;
  Console.WriteLine("This is code was reviewed on {0} by {1} /n Comments {2}",
    attr.date,
    attr.name,
    attr.comment )
 } 
 
 //Discovery
 Assembly asm = Assembly.Load("Mscorlib.dll");
 Type[] types = asm.GetTypes();
 foreach(Type type in types)
 {
  Console.WriteLine("Type is{0}, type);
  Console.WriteLine("/n{0} types found." types.Length);
 }
 
 //LateBinding
 Type mathType =Type.GetType("System.Math");
 object obj = Activator.CreaterInstance(mathType);
 
 Type[] parameterTypes = new Type[2];
 parameterTypes[0] = Type.GetType("System.Double");
 parameterTypes[1] = Type.GetType("System.Double");
 MethodInfo powInfo = mathType.GetMethod("Pow", parameterTypes);
 
 object[] parameters = new object[2];
 parameters[0] = 5;
 parameters[1] = 3;
 object returnValue = powInfo.Invoke(obj, parameters);
 Console.WriteLine("5 to the 3rd power is {0}, returnValue);

Thread:
 //Create Implicit Threads
 
 using System.Threading
 Thread threadOne = new Thread(new ThreadStart(Countup));
 Thread threadTwo = new Thread(new ThreadStart(Countup));
 threadOne.Name = "Thread One";
 threadTwo.Name = "Thread two";
 threadOne.Start();
 threadTwo.Start();
 
 //Joining & killing Threads
 //join two threads in current threa
 threadOne.start();
  threadTwo.Start();
  threadOne.Join();
  threadTwo.Join();
  //this will print, after two above two threads ends
  Console.WriteLine("The other threads done");  
 //sleep(millisenconds)
 threadOne.sleep(1);
 threadOne.Abort();

Synchronization:
 //1. no conflict between threads
 interlocked.Increment(ref synchValue);
 //2. lock method, this will block other thread when it enter into it
 lock(this)
 {
  int temp = synchValue;
  temp++;
  Thread.Sleep(2);
  synchValue = temp;
  synchValue = temp;
  Console.WriteLine("{0} Count up: {1}",
    Thread.CurrentThread.Name,
    synchValue);
 }  

Java核心面试题——精选36道核心面试题 目录java核心面试题1、java个版本中更新的重要功能1.1 java 14版本中更新的重要功能1.2 java 13版本中更新的重要功能1.3 java12版本中更新的重要功能1.4 java11版本中更新的重要功能1.5 java10版本中更新的重要功能1.6 java9版本中更新的重要功能1.5 java8版本中更新的重要功能2、java面向对象编程的特征3、 [JVM](https://blog.csdn.net/issunmingzhi/article/details/104774941)4、J 阅读详情

相关推荐

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 222

Java 208 道面试题:Java 基础模块答案

目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在 2010 年之前的状态;第二,近几年 JDK 更新和发布都很快,Java 的用法也变了不少,加上 Java 技术栈也加入了很多新的框架,比如 Spring Boot、Spring Cloud 等,但类似的面试题却极少。 相比与这些问题,我的这 208 道面试题,包含了以下 4 个特点: 披沙拣金提炼出每个 Java 模块中...

磊哥聊Java 1万+

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2070

Java高级面试题总结

本文内容涉及中高级面试知识点,涵盖众多大厂面试题

前方一片光明 1万+

JAVA 面试背 通过_java面试题背不下来怎么办?java面试题总结

Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)。最近有很多java人员反映,说java面试题太多根本就背不下来,这可急坏了他们,毕竟要去面试java工作的,那么接下来,我们就来给大家讲解一下java面试题背不下来的解决方法。可以正确编译,因为s1+= 1;

m0_74825409的博客 1240

Java面试题

Java面试题(01)Java面试题(02)Java面试题(03)Java面试题(04)Java面试题(05)Java面试题(06)Java面试题(07)Java面试题(08)Java面试题(09)Java面试题(10)Java面试题(11)Java面试题(12)Java面试...

心底善良小剥皮de博客 4062

java面试题及答案2024,java2024最新面试题及答案(之一)

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

码界云仓 1508

2020最新Java面试题

@TOC1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和 ...

java开发郭靖 2950

java 入门面试题

基础:JDK 和 JRE 的区别== 和 equals 的区别基本类型和包装类对象使用 == 和 equals进行比较的结果?什么是装箱?什么是拆箱?装箱和拆箱的执行过程?常见问题?hashCode()相同,equals() 也一定为 true吗?final 在 java 中的作用final finally finalize()区别finally语句块一定执行吗?final 与 static 的区别return 与 finally 的执行顺序对返回值的影响String对象中的replace和replaceA

m0_74824755的博客 999

Java面试题(最新最全Java面试题汇总)

Java面试题(最新最全Java面试题汇总)JAVA相关基础知识Java面试题集-Java面试题,J2EE面试题集J2EE面试题集(附答案)Java常见面试题集--面试题全面综合()Java常见面试题集--面试题全面综合()Java面试题集(欢迎大家踊跃提供) 最全的C/C++面试题集(C/C++试题和部分答案)最全的C/C++面试题集(最全的C/C++试题集和答案)()一道有趣的C#考试题

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 2936

Java基础面试题汇总

java基础面试题整理

个人博客,欢迎收藏。 1万+

Java线程面试题

Java线程面试题 Top 50 下面是Java线程相关的热门面试题,你可以用它来好好准备面试。 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的...

ANGEL CITY 1895

最新Java面试题,常见面试题及答案汇总

154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?29.在 Queue 中 poll()和 remove()有什么区别?46.线程池中 submit()和 execute()方法有什么区别?

CTZL123456的博客 545

Java经典面试题

这份面试题,包含的内容了十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM。下面一起来看 208 道面试题,具体的内容。以下是网上整理的非常全面的面试题,当然,绝大多数人不可能全部用到,但是都罗列在此,大家可根据自己的情况,选择对应的模块进行阅读。

2401_87878486的博客 1175

【面试题】-java面试题总目录

前言:先吐槽一下面试吧,相信不少人都有这样的经历,其实你对某项技术已经掌握的很OK了,但在面试的时候却未必能发挥到很好,让面试官觉得你确实已经很好的掌握该技术,也就是说你实际对该技术掌握的程度有90%,但面试时表现出来的却只有30%甚至更少,这可能是表达能力的问题,但也可能很大程度是因为你没有刷面试题,有些平时几乎很少会用到地方没有涉及到刚好被问到了.就好生活中有些人开车开得很好,甚至是一些开车多...

老汉健身的博客 537

一、java基础面试题

本片文章主要总结了java基础常见的面试题,虽然面试中基础问的不是很多,但是不能不会,大家可以根据目录选择自己没有掌握的,也可以全部看一遍,过一遍自己的基础,后面java一些其他技术的面试题也会陆陆续续的发布,为大多面试者提供一个复习的平台。感兴趣的铁铁可以关注下本专栏;在本系列文章中有我自己在思考题目的时候,写的简记,或者我认为重点的都加粗进行了处理,给大家提供借鉴,题目大都是从各个地方总结而来,后面有新题目也会不断的进行扩充。

懒洋洋的博客 2393

Java面试题集锦

 Java面试题集锦 2017-09-26 阿木侠 Java知音 Java知音 Java知音 微信号 Java_friends 功能介绍 致力打造一个有情怀的Java相关技能推送号 这是整理之后的面试题,本来都是已经发过的,后台不断有小伙伴留言想我去把这些集中到一块儿看着方便,最近一直挺忙就一直没动手,今天终于抽出空来整理了,顺手把推荐书籍

java_2017_csdn的博客 3396

大厂JAVA面试题

精心整理的近几年国内大厂的一些java面试题,希望对大家有所帮助

狗剩没有饭吃 1367

爱奇艺用户画像以及用户行为数据.zip

背景描述数据挖掘顶会刊物WSDM与爱奇艺在2022年初联名举办的时间序列预测大赛中由爱奇艺提供的脱敏过的用户行为数据以及用户画像数据,数据量级:1000w+次登录记录,7000w+浏览记录,59w+用户画像数据说明test-a-without-labels.csv:是预测用的样本编号(用户ID)与对应日期登录信息 app_launch_logs.csv:user_id:用户IDlaunch_type:登录类型launch_date:登录日期互动信息 user_interaction_data.csv:user_id:用户IDvideo_id:互动的视频IDinter_type:互动类型inter_date:(脱敏后)互动日期视频播放数据 user_playback_data.csv:user_id:用户IDvideo_id:视频IDplay_duration:观看时长play_date:(脱敏后)观看日期视频相关数据 video_related_data.csv:video_id:视频IDvideo_duration:视频时长grou

上一篇: C#学习笔记之一(basic, class, function,array, collection interface)
下一篇: C#学习笔记之六(stream, Asynchronous data read, HttpWebRequest)
bugfree
博客等级 码龄24年 1粉丝 19原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值