.Net Framework

Java工程师需要会什么?岗位要求

老子叫甜甜 提交于 2020-12-12 14:52:45
  IT行业作为新兴行业近几年无论是从就业难度还是岗位待遇都是各行的领头羊,Java工程师在这其中占很大部分,成为一个Java工程师需要掌握什么技能呢?   1.CoreJava,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了。   2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细。   3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的。   4.JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体,了解之后眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型

程序员的自我修养

China☆狼群 提交于 2020-12-12 13:54:43
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书: http://it-ebooks.info/ DevStore:开发者服务商店 不错的书籍 人件 人月神话 代码大全2 计算机程序设计艺术 程序员的自我修养 程序员修炼之道 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系) 深入理解计算机系统 软件随想录 算法导论(麻省理工学院出版社) 离线数学及其应用 设计模式 编程之美 黑客与画家 编程珠玑 C++ Prime Effective C++ TCP/IP详解 Unix 编程艺术 《精神分析引论》弗洛伊德 搞定:无压力工作的艺术 平台工具(都是开源的好东东哦) Redmine/Trac:项目管理平台 Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)

PowerShell 处理对象

冷暖自知 提交于 2020-12-12 09:57:45
来自《Windows Powershell入门指南》 处理对象   虽然您最初可能没有意识到,但是在 Windows PowerShell 中工作时,所使用的是 .NET 对象 。随着您经验的增加,对象处理能力变得更明显,而且您发现自己使用的是对象,甚至用对象进行思考。      从技术上讲, .NET 对象是 .NET 类的实例,包含数据以及与该数据关联的操作 。但是,可以将对象视为具有 属性(与特性类似) 和 方法(可以对对象执行的操作) 的数据实体。      例如,在 Windows PowerShell中获取服务时,实际上是获取表示该服务的对象。查看有关服务的信息时,所查看的是其服务对象的属性。此外,启动服务时(即,在将服务的 Status 属性更改为“started”时),所使用的是服务对象的方法。      类型相同的所有对象都具有相同的属性和方法,但是对象的每个实例可能具有不同的属性值。例如,每个服务对象都具有 Name 和 Status 属性。但是,每个服务都可以具有不同的名称和不同的状态。      准备就绪后,了解对象是很容易的。若要查明 cmdlet 正获取对象的类型,请使用管道运算符 (|) 将“get”命令的结果发送到 Get-Member 命令。例如,以下命令将 Get-Service 命令检索的对象发送到 Get-Member。 Get

tcp keepalive与http keep-alive

一曲冷凌霜 提交于 2020-12-12 09:11:46
1、长连接 HTTP长连接和短连接,其本质是TCP连接,HTTP是应用层的协议,基于请求/响应模式,而TCP是传输层协议,只有负责传输的这一层才需要建立连接。 长连接情况下,多个HTTP请求可以复用同一个TCP连接,节省TCP连接建立和断开的消耗; 2、http keep-alive HTTP协议采用请求/应答模式,使用非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开TCP连接;使用Keep-Alive模式时,可以复用同一个TCP连接,Keep-Alive功能避免了重新建立TCP连接。 keep-alive常用参数: keepalive_timeout; keepalive_requests; 3、tcp keepalive TCP keepalive用来检测tcp建立连接后,是否有应用报文传输,如果在参数tcpkeepalivetime、tcpkeepaliveprobes之外,则断开TCP连接; 在Linux系统没有全局的选项开启TCP的KeepAlive,必须在TCP的socket中单独开启; Linux Kernel有三个选项影响到KeepAlive的行为: 1.net.ipv4.tcpkeepaliveintvl = 75 2.net.ipv4.tcpkeepaliveprobes = 9 3.net.ipv4

献给 Dapper 使用者的一份礼物

点点圈 提交于 2020-12-12 02:44:00
本文作者:FreeSql & CSRedis 本文链接:https://www.cnblogs.com/kellynic/p/14095502.html 1|0写在开头 众所周知 Dapper 是 .NET 下最轻最快的 ORM,它是喜欢写 SQL 码农的福音,相对于 SqlHelper 它更加方便,据统计 10个 .NETer 有 9个 用过 Dapper 。 由于 .NET 环境的特殊,对 Lambda 表达式树的喜爱,于是市面上有很多出现了基于 Dapper 的轻量级 ORM ,它们几乎都有共同特点,让 Dapper 支持 Lambda 表达式树,写起来顺畅如流水。 今天介绍一款本身功能已经很强大的 ORM ,他提供一个隐藏得比较深的 API 功能,使用起来和 Dapper 没什么两样。 2|0了解 Lambda 表达式树 这要先从 Lambda 表达式开始说起,词语中少了一个 树 字,差别甚大。 表达式,如下各种语法糖骚操作,产生的 IL 一模一样: //使用C# 2.0中的匿名方法获取字符串长度 Func< string , int > strLength = delegate ( string str) { return str.Length; }; Console.WriteLine(strLength( "Hello World!" )); /

C#经典面试题100道

非 Y 不嫁゛ 提交于 2020-12-12 01:51:24
1. .NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。 C#是一种编程语言,可以基于.NET平台的应用。 2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } } 3. C#中的委托是什么?事件是不是一种委托? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 4. 简述 private、 protected、 public、internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected: 保护成员,该类内部和继承类中可以访问。 public: 公共成员,完全公开,没有访问限制。 internal:在同一命名空间内可以访问。 5.

本地Markdown文件上传到博客

喜欢而已 提交于 2020-12-12 00:40:20
本地Markdown文件上传到博客 参考: https://www.cnblogs.com/bloodthirsty/p/12851452.html 1.Typora 最漂亮的写作APP https://www.typora.io/ 2.Typroa到博客园 下载地址: 第一步:下载dotnet-sdk并安装 dotnet下载地址 第二步:通过dotnet --info确认版本为5.0.0 第三步:输入dotnet tool install -g dotnet-cnblog进行安装 引文我这个已经安装,所以显示已安装 第四步:dotnet-cnblog 按提示输入id、用户名、密码 写的有问题可以:使用dotnet-cnblog reset 重置 输入dotnet cnblog proc -f 文件路径 那么这个生成的可以上传到博客的文件在哪呢(本地转换的文件相同目录下) 3.博客园设置markdown 4.将生成的多线程-cnblog.md文件打开复制,直接粘贴到博客的随笔或文章处 来源: oschina 链接: https://my.oschina.net/u/4408862/blog/4791997

简述C#中应用程序集的装载过程

半世苍凉 提交于 2020-12-11 22:37:04
了解程序集如何在C#.NET中加载 我们一直在处理库和NuGet软件包。不管是好是坏,高级.NET开发人员都需要了解.NET运行时如何加载程序集。 这些库依赖于其他流行的库,并且有很多共享的依赖项。有了足够大的依赖关系网络,您最终将陷入冲突或困境。处理此类问题的最佳方法是了解该机制在内部的工作方式。 在本文中,您将看到.NET进程如何以及何时加载引用的程序集。 您将了解加载了哪个库版本,当有多个可用版本时会发生什么,以及为什么有时由于版本冲突而出现问题。 您将看到如何调试这些类型的问题,查看程序集绑定日志(融合日志)以及一些解决冲突的方法。 程序集,模块和引用 让我们从围绕.NET流程的一些基本术语开始。 一个 装配 在.NET是一个DLL或EXE文件。Visual Studio解决方案中的每个项目都被编译为一个程序集。 每个程序集可以包含多个 模块 ,但是实际上,我们几乎总是在一个程序集中有一个模块,该模块的名称与该程序集相同。 在Visual Studio中启动进程或单击F5时,将执行启动项目程序集。除了.NET Framework或.NET Core程序集之外,它将是第一个加载的程序集。 之后,该过程将根据需要在运行时加载其他程序集。仅当需要调用该程序集的方法或使用该程序集的类型时,它才会延迟加载程序集。 这里是为一个简单的“ Hello World” .NET

什么是域名?在互联网域名用来做什么?

好久不见. 提交于 2020-12-11 17:45:50
  我们在编程和网络经常会听到域名这个词,大多数人会把他跟网址联系在一起,那么究竟什么是域名呢,在互联网领域有着什么作用呢?   域名(英文名字叫做domain name),也叫做网域,实际上就是一串在因特网计算机上的名百字字符,而且是具有唯一性的,当传输数据时用做定位标识。   尽管IP地址能够唯一地标记网络上的计算机,但IP地址是一长串数字,不直观,而且用户记忆十分不方便,于是人们又发明了另一套字符型的地址方案,即所谓的域名地址。IP地址和域名是一一对应的,这份域名地址的信息存放在一个叫域名服务器(DNS,Domain name server)的主机内,使用者只需了解易记的域名地址,其对应转换工作就留给了域名服务器。域名服务器就是提供IP地址和域名之间的转换服务的服务器。   域名入网结构:   主机名、机构名、网络名、最高层域名   这是一种分层的管理模式,域名用文字表达比用数字表示的IP地址容易记忆。加入因特网的各级网络依照域名服务器的命名规则对本网内的计算机命名,并在通信时负责完成域名到各IP地址的转换。由属于美国国防部的国防数据网络通信中心( DINNIO)负责因特网最高层域名的注册和管理,同时它还负责IP地址的分配工作。域名由两种基本类型组成:以机构性质命名的域和以国家地区代码命名的域。常见的以机构性质命名的域一般由三个字符组成。   域名是以度英文符号“."来隔开

Linux之Win10-安装子系统-GUI-界面

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-11 17:44:24
Win10 安装子系统后,默认是没有图形界面的,如果需要启动图形化界面则需要安装VcXsrv,再配置相关参数后子系统才能启动图形化界面。本文档以Win10安装Ubuntu系统为例子展开讲解。 安装VcXsrv 下载地址 https://sourceforge.net/projects/vcxsrv/ 安装以后会有两个程序,分别是XLaunch和VcXsrv,它们可以用来远程访问 Linux 。 启动XLaunch 选择:“one large window”,Display number设置成0,其它默认即可: Ubuntu 安装桌面环境 建议使用root用户操作(使用sudo -s 命令 更换为root用户) sudo apt-get install -y ubuntu-desktop sudo apt-get install -y unity sudo apt-get install -y compizconfig-settings-manager 配置显示方式 export DISPLAY=localhost:0 ccsm 在X-Windows中,即会弹出ccsm的配置界面 按照下图配置即可 完成后点close即可 开启桌面 使用 sudo compiz 命令 即可在XLaunch上看到界面了! 原文来自: Linux就该这么学 原文链接:https://www