当前位置: 首页 > news >正文

南昌创建网站网络舆情监测专业

南昌创建网站,网络舆情监测专业,微信会员卡小程序,网站集约化建设工作方案一、编译原理和开发效率 编译速度#xff1a; C# #xff08;约大于等于#xff09; JAVA Python python的编译原理 前提#xff1a;python 3.6 python不会直接编译源码 而是把源码直接扔给解释器#xff0c;这种方式 使得python非常灵活#xff0c;让它的开发效…一、编译原理和开发效率 编译速度 C# 约大于等于 JAVA Python python的编译原理 前提python 3.6 python不会直接编译源码 而是把源码直接扔给解释器这种方式 使得python非常灵活让它的开发效率非常高。 它非常适合数据分析、脚步编写和web开发当然缺点就是它比编译语言慢因为它是逐行解释的代码的 Java的编译原理 前提jdk8 首先java源代码被编译成字节码.class文件)运行时由jvm(Java虚拟机执行将其转换成机器码由于java里面使用JIT(即时编译在执行之前动态编译关键的字节码所以Java的运行速度相对比Python快2-4倍。 其次Java8及以上默认开启了分层编译一般有client编译器和server编译器两种编译器混合编译以达到最高的性能 C#的编译原理 前提net core 3.0 由RoslynC# 和 Visual Basic编译器进行编译成IL(也就是中间语言),然后(.netcore clr)运行时会对其进行编译并将其执行。当然.net平台也使用的分层编译的机制对IL进行相关优化。 **开发效率 Python C# JAVA ** 至于为啥开发效率会是这样主要是它们的语法灵活性导致的后面我将对比它们的一些基础语法。 二、常用的数据类型 1.python里常用数据类型 2.java里常用数据类型 3.C#里常用数据类型 讲讲Tuple C#和Python里面有 它是一组类型不同的数据集合不可变的 List Set 是在python 、c#、JAVA里面都有的 这个出现了个Dictionary 也就是字典 在JAVA的表现形式略有不同它用的Map其实功能都是差不多的 都是存放键值对的 然后我们来看看 python里面 List Set Dictionary 是怎么取值的 在Python和C#里面 List 和 Tuple 使用的索引(下标-index) list.[index] 取值/赋值 Dictionary 使用的索引key) dict.[key] 取值和赋值 在JAVA里面 List 和 Set 使用的索引(下标-index) get(index) 取值和赋值 Dictionary 使用的索引key) get(key) 取值和赋值 4.小结: 1.Python最灵活毕竟是弱类型语言,约束性低,当然排查错误很难是它最大的缺点对于List Set Map(Dictionary)来说Java的init方式设计的并不好Java的获取值和设置值需要使用get()/set()/put()记忆api并不友好像python/c#里面它的形式是[index/key],很像我们是掉同一个api 三、foreach循环 python # Tuple 元组tuple1 (123, 10 5j, Hello Python)# 元组的取值 按索引下标取值(不能修改for item in tuple1:#item 999print(item)# Listlist1 [123, 10 5j, Hello Python]# list的取值 按索引下标取值for item in list1:print(item)#Dictionary#dict1 {}dict1 {one: 123, two: 10 5j, three: 123}#形式一 获取实际值for key in dict1:print(%s_%s % (key, dict1[key]))# 形式二 dict_itemfor (key,item) in dict1.items():print(%s_%s %(key,item))# Set#set1 {,}set1 {123, 10 5j, Hello Python,123}for item in set1:print(item) java //List ListString list new ArrayListString(); list.add(123); list.add(10 5j); list.add(Hello Python);for (String s : list) {System.out.println(s); }//Map MapString,String map new HashMap(); map.put(one,123); map.put(two,10 5j); map.put(three,Hello Python); SetMap.EntryString, String entries map.entrySet(); //SetString strings map.keySet();for (Map.EntryString, String entry : entries) {System.out.println(entry.getKey()_entry.getValue()); }map.forEach((key,value)-{System.out.println(key_value); });//Set SetString set new HashSet(); set.add(123); set.add(10 5j); set.add(Hello Python);for (String s : set) {System.out.println(s); }C# IEnumerableint emum1 Enumerable.Range(0,10);foreach (var item in emum1){Console.WriteLine(item);}#region /* Tuplestring, string, string tuple1 Tuple.Create(123, 10 5j, Hello Python);*///Tuple Array//简化的方式string[] array1 { 123, 10 5j, Hello Python };foreach (var item in array1){Console.WriteLine(item);}#endregion#region Tuple/* Tuplestring, string, string tuple1 Tuple.Create(123, 10 5j, Hello Python);*///Tuple//简化的方式(string, string, string) tuple1 (123, 10 5j, Hello Python);/* for (int i 0; i tuple1.Count; i){}*/#endregion#region ListIListstring list new Liststring { 123, 10 5j, Hello Python };foreach (var item in list){Console.WriteLine(item);}#endregion#region DictionaryIDictionarystring,string dict new Dictionarystring, string {{one,123 },{two,10 5j },{three,Hello Python },};//KeyValuePairString,Stringforeach (var item in dict){Console.WriteLine(item.Key_item.Value);}#endregion#region SetISetstring set new HashSetstring {123, 10 5j, Hello Python};foreach (var item in set){Console.WriteLine(item);}// Set是无序的 所以不能直接用下标取值#endregion四、数据切片 java //非常简单的切分//Object[] objs2 Arrays.copyOf(objs, 3);//Object[] objs3 Arrays.copyOfRange(objs, 3,8);//ListObject objects list.subList(1, 4);MapString,String map new HashMap();map.put(name,Java);map.put(birth,1991);Object[] objs {1, 2, 3, 4, 5, 6, 7,map};ListObject list new ArrayList(Arrays.asList(objs));ListObject segData list.stream().skip(3).limit(5).collect(Collectors.toList());//segData Arrays.stream(objs).skip(3).limit(5)// .collect(Collectors.toList());for (Object segDatum : segData) {System.out.println(segDatum);}//物理分页// BufferedReader bufferedReader Files.newBufferedReader(Paths.get(D:\\Desktop\\battle内容.txt)); // bufferedReader.skip(100); // String read bufferedReader.readLine(); // System.out.println(read);//并行流 》list.parallelStream(); // IntStream objectStream IntStream.range(0, 200); // //原始迭代器 // Spliterator originSp objectStream.spliterator(); // //对半切分 // while (originSp.estimateSize()1){ // Spliterator sp1 originSp.trySplit(); // System.out.println(originSp剩余数量 originSp.estimateSize()); // }C# IListobject list new Listobject{1, 2, 3, 4, 5, 6, 7,new Dictionarystring,string{ { name ,1998 },{ birth, 1998 } }};//使用Linq (比较万能)IEnumerableobject enumerable list.Skip(4).Take(5);foreach (var item in enumerable){Console.WriteLine(item);}//使用Range C#8 仅对数组有效)int[] arr { 13, 12, 39, 81,2 }; var slice1 arr[1..3];//获取第2项-到第四项不包括var slice2 arr[1..^2];//截止为len-2 从尾部计算var slice3 arr[^1];//获取最后一项// RuntimeHelpers.GetSubArray(arr, Range.EndAt(3));foreach (var item in enumerable){Console.WriteLine(item);}//使用Span//Spanint span arr.AsSpan().Slice(1, 3);//var arraySpan new Spanbyte(list);// 将日志数据转换为字节数组 byte[] logBytes File.ReadAllBytes(D:\Desktop\battle内容.txt);// 使用Span处理日志数据Spanbyte logSpan new Spanbyte(logBytes);// 在Span中查找特定关键词string keyword error;byte[] keywordBytes Encoding.UTF8.GetBytes(keyword);int keywordCount 0;for (int i 0; i logSpan.Length - keywordBytes.Length; i){if (logSpan.Slice(i, keywordBytes.Length).SequenceEqual(keywordBytes)){keywordCount;}}Console.WriteLine($匹配次数:{keywordCount});python ## 切片支持 string list set tuple dictionary var1 1,2,3,4,5,6,7,hello,Python var1 (1, 2, 3, 4, 5, 6, 7, hello, Python) var1 [1,2,3,4,5,6,7,{name:Python,birth:1989}] segeme_var var1[4:8] print(segeme_var)优雅性 Python C# Java 相对性能 C# Java Python 五、对IO流如何关闭 java //方式一 try-finally (jdk8以前)BufferedReader bufferedReader1 null;try {bufferedReader1 Files.newBufferedReader(Paths.get(D:\\Desktop\\battle内容.txt));//coding} catch (IOException e) {e.printStackTrace();}finally {if(bufferedReader1!null){try {bufferedReader1.close();} catch (IOException e) {e.printStackTrace();}}}//方式二 try-resource (jdk8)try( BufferedReader bufferedReader2 Files.newBufferedReader(Paths.get(D:\\Desktop\\battle内容.txt))) {//coding} catch (IOException e) {e.printStackTrace();}C# //方式一 try-finallyFileStream fileStream1 null;try{fileStream1 File.OpenRead(D:\\Desktop\\battle内容.txt);}catch (Exception){}finally{fileStream1?.Close();}//方式二 usingusing ( FileStream fileStream2 File.OpenRead(D:\\Desktop\\battle内容.txt) ){}python #!/usr/bin/python3 # -*- coding: utf-8 -*-fr None# region 方式一 try-finally try:fr open(D:\\Desktop\\battle内容.txt, r)var1 1/0 finally:if fr is not None:print(已关闭)fr.close()pass # endregion# # region 方式二 with # with open(D:\\Desktop\\battle内容.txt, r) as fr2: # var1 1/0 # # endregion 六、关于它们的继承不同 java 支持单一继承 多个实现 public class Particle {//转动public void turn(){System.out.println(可以转动);} }public class Wave {//扩散的public void diffuse(){System.out.println(可以扩散);} } //单个继承 public class Light extends Particle{public static void main(String[] args) {Light light new Light();light.diffuse();light.turn();} }C# 支持单一继承 多个实现 namespace NetCore_Demo.inherit {public class Particle { //粒子public void Turn() { //转动System.Console.WriteLine(可以转动);}}public class Wave{ //波 public void Diffuse(){//扩散的System.Console.WriteLine(可以扩散);}}public class Light:Wave{static void Main(string[] args){Light light new Light();light.Diffuse();}} } python 支持多个继承 无接口实现 class Particle: # 粒子classmethoddef turn(self):print(可以转动)class Wave: # 波classmethoddef diffuse(self):print(可以扩散)class Light(Particle,Wave): # 光passif __name__ __main__:light1 Light()light1.turn()light1.diffuse() 七、关于它们的重载不同 java √1.跟返回值类型无关只跟参数列表有关 √2.不支持关键字和参数默认值 public class MyOverload {public void learn(){System.out.println(正在文化课的学习);}public void learn(String course){System.out.println(String.format(正在%s的学习, course));}/*** param course 课程名称 举个例子 舞蹈 跆拳道* param learnTime 时间学习时长* return 是否完成学习时长*/public boolean learn(String course,float learnTime){float totalTime 3f;System.out.println(String.format(正在%s的学习学习时长:%s小时, course,learnTime));return totalTimelearnTime;}public static void main(String[] args) {MyOverload myOverload new MyOverload();myOverload.learn();myOverload.learn(舞蹈);bool f myOverload.learn(舞蹈,1);System.out.println(是否完成学习任务f);} }C# √1.跟返回值类型无关只跟参数列表有关 √2.支持关键字和参数默认值 using System; namespace NetCore_Demo.overload {public class MyOverload{public void learn(){Console.WriteLine(正在文化课的学习);}public void learn(string course){Console.WriteLine($正在{course}的学习);}/// param namecourse课程名称 举个例子 舞蹈 跆拳道/param/// param namelearnTime时间学习时长/param/// returns是否完成学习时长/returnspublic bool learn(string course, float learnTime){float totalTime 3f;Console.WriteLine($正在{course}的学习学习时长:{learnTime}小时);return totalTime learnTime;}static void Main(string[] args){MyOverload myOverload new MyOverload();myOverload.learn();myOverload.learn(舞蹈);bool f myOverload.learn(舞蹈, 1);Console.WriteLine(是否完成学习任务 f);// 关键词参数 参数默认值}} }python √python 在类里面只有覆盖没有重载 class MyOverload:def learn(self, course舞蹈, learnTime3):print(f正在{course}的学习,学习时长:{learnTime}小时)return learnTime 3if __name__ __main__:myOverload MyOverload()myOverload.learn()myOverload.learn(course跆拳道)八、函数式接口 1、python是天然的函数式接口 2.c#里面用于委托这个可以多播可以实现函数的回调 public delegate void Action(); public delegate void Actionin T1(T1 arg1); public delegate void Actionin T1, in T2, in T3, in T4, in T5, in T6(T1 arg1, T2 arg2, T3 arg3, T3 arg4, T3 arg5, T3 arg6);public delegate TResult Funcout TResult(); public delegate TResult Funcin T1, out TResult(T1 arg1);... public delegate TResult Funcin T1, in T2, in T3, in T4, in T5, in T6, out TResult (T1 arg1,T2 arg2,T3 arg3,T4 arg4,T5 arg5,T6 arg6)public delegate bool Predicatein T(T obj)3.java8里面使用函数式接口FunctionInterface) //无返回值类型 FunctionalInterface public interface ConsumerT {void accept(T t);//...... } 》BiConsumerT, U//一个入参 一个返回值 FunctionalInterface public interface FunctionT, R {R apply(T t);//...... } 》BiFunctionT, U, R//一个入参 返回值是布尔类型 FunctionalInterface public interface PredicateT {//对给定的参数求值boolean test(T t); } 》BiPredicateT, U九、相关视频链接: https://www.bilibili.com/video/BV1Cw411V78V https://www.douyin.com/user/self?modal_id7315770090534882570
http://www.zqtcl.cn/news/784852/

相关文章:

  • 在万网申请的域名_需要把万网的账户密码给做网站的吗做鱫视频网站
  • 网站建设360wordpress 音乐下载主题
  • 站群推广wordpress换logo
  • 苏州网站建设丶好先生科技电脑怎样做幻灯片的网站
  • 什么网站可以做线上邀请函大米网络营销推广方案
  • .net做网站实例 贴吧软件开发前景和发展
  • 合肥快速建站模板软件开发文档编制
  • 深圳免费网站设计平板做网站服务器
  • 注册或者浏览社交类网站时不恰当威宁做网站
  • 国外的电商网站有哪些方面沈阳医疗网站制作
  • 那个企业网站是用vue做的网站频道运营怎么做
  • 英语培训学校网站怎么做网站建建设公司和网络自建
  • 无法访问iis网站网站吸引客户
  • 郑州企业网站排名优化wordpress指定文章
  • 南京 网站开发宿州网站建设工作室
  • 龙海市城乡规划建设局网站河南郑州哪里可以做公司网站
  • 网站正能量晚上不用下载进入免费成都网站制作方案
  • 宝安做棋牌网站建设哪家公司便宜jsp网站搭建
  • 英文网站建设方法深圳信用网
  • ip查询网站用织梦后台修改网站logo
  • 网站编辑信息怎么做茶叶网站建设策划书ppt
  • 网站建设费摊销几年嵌入式软件开发用什么语言
  • 网站备案 后期商业设计网站
  • 网站负责人半身照国际公司和跨国公司
  • 网站的组成友情下载网站
  • 做视频课程网站中职网站建设
  • seo整站优化服务盗图来做网站
  • 网站服务器基本要素有哪些交易网站的建设规划
  • 网站开发源代码mvc山东网站推广
  • 深圳建网站兴田德润团队织梦的网站模板免费吗