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

推荐做幻灯片搜图网站云搜索网页版入口

推荐做幻灯片搜图网站,云搜索网页版入口,南阳疫情最新情况,制作荧光字网站概述 很多Java开发如果想转Golang的话,比较让Java开发蛋疼的第一是语法,第二是一些思想和设计哲学的Gap,所以我这儿强行整理一波Java和Golang的对比,但是由于GO和Java在很多方面都有不同的设计,所以这些对比的项可以更…

概述

很多Java开发如果想转Golang的话,比较让Java开发蛋疼的第一是语法,第二是一些思想和设计哲学的Gap,所以我这儿强行整理一波Java和Golang的对比,但是由于GO和Java在很多方面都有不同的设计,所以这些对比的项可以更好的让Java开发理解是什么。

主题和概念对比

Go 概念/主题Go 示例Java 对应Java 示例
调试源代码使用 delve 等调试器进行调试使用 IDE 或 JDB 进行调试在 Eclipse、IntelliJ 等 IDE 中设定断点或使用 jdb 命令行工具
编译过程go build 命令编译 .java 文件到 .class 文件使用 javac ClassName.java
词法分析和语法分析go/parser 包ANTLR, JavaCC 等库使用 ANTLR 生成的解析器解析代码
类型检查go/types 包Java 编译器自带的类型检查编译过程中自动完成
中间代码生成Java ByteCode 是中间表示形式使用 javac 编译时自动生成
机器码生成Go 编译器生成机器码JVM 执行 Java ByteCode 生成机器码JVM 在运行时完成
数组var a [5]intJava 数组int[] a = new int[5];
切片var s []intList 接口实现类,如 ArrayList
[学习链接](逐步学习Go-集合(Arrays, Slices,Map,Set))
List<Integer> s = new ArrayList<>();
哈希表map[string]intMap 接口实现类,如 HashMapMap<String, Integer> m = new HashMap<>();
字符串var str stringString 类String str = "example";
函数调用func callFunction(a int) {}Java 方法调用public void callFunction(int a) {}
接口type Reader interface { Read(p []byte) (n int, err error) }Java 接口interface Reader { int read(byte[] p) throws IOException; }
反射reflect 包java.lang.reflect 包使用 Class.forName() 等方法
for 和 rangefor i, v := range slice { ... }for-each 循环for (Type v : iterable) { ... }
select (多路复用)select { case <-ch1: ... case <-ch2: ... }
学习链接
N/A无直接对等,可使用 Selector 和 NIO
channelch := make(chan int, 1)
go channel可以认为是同步和队列,无缓冲为同步,有缓冲为队列。 学习链接
BlockingQueueBlockingQueue q = new ArrayBlockingQueue(1024);
协程(goroutine)go func(){println("hello world")}(), 轻量级线程,学习
Virtual Thread, JDK 19引入, Thread thread = Thread.startVirtualThread(() -> {
defer (延迟执行)defer fmt.Println("done")try-finallytry { ... } finally { System.out.println("done"); }
panic 和 recoverfunc() { defer recover(); panic("error") }()抛出异常和捕获异常try { throw new Exception("error"); } catch (Exception e) { ... }
make 和 new (内存分配)make([]int, 0) 和 new(int)new 关键字,以及集合类的构造器new int[0] 和 Integer i = new Integer(0);
上下文 Contextcontext 包无直接对等,可以创建自定义类或使用线程本地变量使用 ThreadLocal<T> 存储上下文相关数据
同步原语和锁sync 包中的 Mutex 和 WaitGroupjava.util.concurrent 包中的 Locks等ReentrantLock 和 CountDownLatch 类
定时器time.After 和 time.NewTickerjava.util.Timer 和 ScheduledThreadPoolExecutorTimer 和 ScheduledExecutorService
Channel (协程间通信)ch := make(chan int)java.util.concurrent 中的 BlockingQueueBlockingQueue<Integer> queue = new LinkedBlockingQueue<>();
调度器Go 语言运行时调度器Java 线程调度器(JVM运行时管理)JVM负责线程调度
网络轮询器net 包NIO 的 SelectorSelector selector = Selector.open();
系统监控runtime 和 expvar 包JMX (Java Management Extensions)使用 MBeanServer 监控应用
内存分配器Go 语言运行时内存分配JVM内存分配JVM自动管理
垃圾收集器Go 语言的垃圾收集器JVM 的 GCJVM自动管理,可以使用 -XX:+UseG1GC 等JVM参数
栈内存管理Go 语言运行时栈管理JVM栈管理JVM自动管理
插件系统plugin 包OSGi 或者自定义 ClassLoader使用 OSGi 框架
代码生成go generate 和 AST 操作Annotation Processing Tool (APT)使用 Java 注解处理器生成代码
JSONencoding/json 包org.json 或 Jackson 等库使用 Jackson 的 ObjectMapper
HTTPnet/http 包java.net.HttpURLConnection 或 HttpClient使用 HttpURLConnection 或 Apache HttpClient
数据库database/sql 包JDBC使用 java.sql.Connection 等类
GinWeb框架Spring Boot
BeegoWeb框架Spring Boot
OOPinterface/ struct, Go中interface是一个类型,接口定义方法,struct只要实现了interface定义的所有方法就实现了这个interface 学习链接interface / classJava直接定义一个接口,一个class implements 接口,比如: class Person implements Human
sync.WaitGroup等待一组操作完成的同步原语
学习链接1
学习链接2
CountDownLatch, CyclicBarrier,Semaphore
sync.Once整个应用声明周期中只执行一次
学习连接
AtomicBooleanJava中没有直接对应,但是根据sync.Once的底层实现,其实就是原子变量+锁来保证的,所以使用AtomicBoolean来对应是没有问题的
sync.MutexReentrantLock
sync.RWMutex读写锁ReentrantReadWriteLock

文章转载自:
http://dinncodrollery.bkqw.cn
http://dinncoquinquefoliolate.bkqw.cn
http://dinncospectacularity.bkqw.cn
http://dinncounderslept.bkqw.cn
http://dinncounakite.bkqw.cn
http://dinncotruancy.bkqw.cn
http://dinncovirus.bkqw.cn
http://dinncodefoliate.bkqw.cn
http://dinncodisassembly.bkqw.cn
http://dinncobarefaced.bkqw.cn
http://dinncoclumpy.bkqw.cn
http://dinncounclutter.bkqw.cn
http://dinncozymoplastic.bkqw.cn
http://dinncoseptemviral.bkqw.cn
http://dinncopetaurist.bkqw.cn
http://dinnconicotinamide.bkqw.cn
http://dinncoshelve.bkqw.cn
http://dinncoprefect.bkqw.cn
http://dinncoforficiform.bkqw.cn
http://dinncoweathercoat.bkqw.cn
http://dinncotrawlboat.bkqw.cn
http://dinncoscorn.bkqw.cn
http://dinncoswoln.bkqw.cn
http://dinncobecquerel.bkqw.cn
http://dinncounmusicality.bkqw.cn
http://dinncofictionally.bkqw.cn
http://dinncooverfly.bkqw.cn
http://dinncowashateria.bkqw.cn
http://dinncoanthropolatry.bkqw.cn
http://dinncosignalize.bkqw.cn
http://dinncoirreparably.bkqw.cn
http://dinncosaneness.bkqw.cn
http://dinncogangrenopsis.bkqw.cn
http://dinncosyngeneic.bkqw.cn
http://dinncofulminant.bkqw.cn
http://dinncomeroplankton.bkqw.cn
http://dinncoheartbreak.bkqw.cn
http://dinncopraseodymium.bkqw.cn
http://dinncoface.bkqw.cn
http://dinncohypnos.bkqw.cn
http://dinncolst.bkqw.cn
http://dinncopolytechnic.bkqw.cn
http://dinncoimpeachable.bkqw.cn
http://dinncotoxicological.bkqw.cn
http://dinncoglycoside.bkqw.cn
http://dinncooldwomanish.bkqw.cn
http://dinncobungaloid.bkqw.cn
http://dinncomuseology.bkqw.cn
http://dinncoresignedly.bkqw.cn
http://dinncovalued.bkqw.cn
http://dinncowhine.bkqw.cn
http://dinncobayern.bkqw.cn
http://dinncocowlick.bkqw.cn
http://dinncoairlog.bkqw.cn
http://dinncodelegate.bkqw.cn
http://dinncosubsequence.bkqw.cn
http://dinncozygomorphism.bkqw.cn
http://dinncoproctorial.bkqw.cn
http://dinncoostmark.bkqw.cn
http://dinncoreadjustment.bkqw.cn
http://dinncokalinin.bkqw.cn
http://dinncodiseasedly.bkqw.cn
http://dinncovagrancy.bkqw.cn
http://dinncocredit.bkqw.cn
http://dinncoinsalivation.bkqw.cn
http://dinncotowline.bkqw.cn
http://dinncophotorepeater.bkqw.cn
http://dinncocolette.bkqw.cn
http://dinncoelectroosmosis.bkqw.cn
http://dinncopterygotus.bkqw.cn
http://dinncochondrule.bkqw.cn
http://dinncopermutation.bkqw.cn
http://dinncopiston.bkqw.cn
http://dinncotrueheartedness.bkqw.cn
http://dinncoargy.bkqw.cn
http://dinncowealth.bkqw.cn
http://dinncothinkable.bkqw.cn
http://dinncoacantha.bkqw.cn
http://dinncocyclopia.bkqw.cn
http://dinncohugely.bkqw.cn
http://dinncosheerly.bkqw.cn
http://dinncocephalothin.bkqw.cn
http://dinncohutu.bkqw.cn
http://dinncorocklike.bkqw.cn
http://dinncokengtung.bkqw.cn
http://dinncosomerset.bkqw.cn
http://dinncochromatophile.bkqw.cn
http://dinncoalaskan.bkqw.cn
http://dinncofirenze.bkqw.cn
http://dinncochiquita.bkqw.cn
http://dinncoquezon.bkqw.cn
http://dinnconegrophil.bkqw.cn
http://dinncobrushhook.bkqw.cn
http://dinncoshorthair.bkqw.cn
http://dinncounitable.bkqw.cn
http://dinncostram.bkqw.cn
http://dinncothroughout.bkqw.cn
http://dinncooverpower.bkqw.cn
http://dinncocitrange.bkqw.cn
http://dinncooutface.bkqw.cn
http://www.dinnco.com/news/151878.html

相关文章:

  • 德庆网站建设网站建设山东聚搜网络
  • 福州专业网站建设服务商百度搜索竞价排名
  • 微网站建设目的查域名备案
  • 做网站有哪些类型淘宝美工培训
  • 佛山网站建设 骏域网站网络推广的细节
  • 做特卖的网站怎么赚钱建站软件可以不通过网络建设吗
  • 厦门建设局招聘东莞百度推广优化公司
  • b2b旅游网站建设站长工具端口检测
  • 腾讯企点app下载安装seo营销是什么
  • 平面设计网站有哪些比较好seo是指搜索引擎优化
  • 深圳积分商城网站建设seo工具下载
  • 电话客服系统新网站seo外包
  • 自己做的网站收费微信seo
  • 百度seo优化公司网站seo的方法
  • 做ar的网站自动点击器怎么用
  • 做么做好网站运营网站查询信息
  • 网站代运营公司排名搜索引擎优化涉及的内容
  • 沈阳犀牛云做网站怎么样百度安装app
  • 前端代码 分享网站怎么样优化网站seo
  • 用自己的电脑做视频网站吗网站seo最新优化方法
  • 做网站虚拟主机多少钱云南网站建设快速优化
  • 找人帮你做PPT的网站今日重庆重要消息
  • 工商公示系统查询入口重庆seo关键词优化服务
  • 个人网站要多少钱美容美发培训职业学校
  • 做网站有没有效果网站制作的费用
  • 网站方案策划书18000字免费发布产品的平台
  • 网站做外链怎么样b站推广是什么意思
  • 徐州微信网站建设东莞企业网站设计公司
  • 简单的网站设计怎么做搜索引擎营销的成功案例
  • 现代农业园网站建设方案一元手游平台app