----------------------------------------- error 使用 (异常处理) // 语法 (普通错误) import "errors" func funName(paratemer) (result int, err error) { err = errors.New("自定义错误信息") } ----------------------------------------- panic 使用 (异常处理) // 语法 (致命错…
----------------------------------------- go 并发 // 注解:go 语言天生为程序并发所设计,可以说go的强项就是在cpu并发上的处理. // go 语言层面就支持了并发.(不是一般高级语言的多线程并发,是系统级真实并发) // go 语言通过安全的通道发送和接受数据以实现同步 // 一般情况下,一个普通的桌面计算机跑十几二十几个线程就有点负载过大了,但是同样的硬件设备go可以轻松上K. -------------------------------…
前言: 整理一下学习 Go 语言的笔记,作为一名老程序,学习一名新的开发语言自然不需要像小白那样从 HelloWorld 看起. 简单整理一下 Go 的一些差异处,希望对大家学习 go 有点帮助,不正确的地方还请指教! 一.环境搭建: 博客园很多教程,自行解决,推荐使用 VS Code 绿灯 + 插件的方式,简单粗暴好用 二.第一课笔记整理: 基础语法:// --------------------------------------- 变量声明 var [名称] [类型] var name s…
一.安装说明 https://studygolang.com/dl 二.环境变量 // 下载 *.msi 安装文件,部分环境变量默认配置好了. 其他配置如下描述 三.目录及项目层级关系 在系统环境变量配置以后,GOPATH 的目录就是你工作区,与 C#/Java 等语言不通,可以随意存放项目目录路径. 在GO中,如果有目录 "包" 层级引用关系的话,必须存放在 GOPATH 下面. 比如: GOPATH=D:\GoWorks 那么对应目录下会有 src.pkg.bin 三个目录 src…
-------------------- interface 接口 // 定义: type IHumaner interface { SayHi() // 接口中只能是方法声明,没有实现,没有数据字段 } // Student ... type Student struct { id int name string } func (tmp *Student) SayHi() { fmt.Println("Student[%s, %d] SayHi", tmp.name, tmp.id)…
go语言当中,没有 class 的概念,那么面向对象的编程思想如何展现呢,go语言中对结构体的使用 struct. package main import "fmt" type Person struct { name string sex byte age int } // 带有接收者的函数叫方法 func (tmp Person) PrintInfo() { fmt.Println("tmp = ", tmp) } // 通过一个函数,给成员赋值 func (p…
------------------- 指针 go 保留的 c 语言指针的操作,同时增加了自动垃圾回收机制 var a = new(int) *a = // &a 内存地址 -------------------- 数组 // 定义 var a []int b := [], , , , } // 下标赋值 c := []: , : } // 多维数组 var a [][]int b := [][]int {{...}, {...}, {...}} -------------------- sli…
PHP笔记——java程序员看懂PHP程序   php是一种服务器端脚本语言,类型松散的语言. <?php   ?>       xml风格 <script language=”php”></script>   脚本风格 <?       ?>    简短风格 <%              %>    ASP风格 以;结尾: 注释: a)         // b)         # c)         /*     */ 变量是存储数据的…
根据现有 IPv4 地址的部署速度,剩余的地址将在 10 到 20 年被使用殆尽.因此网络逐渐从 IPv4 向 IPv6 转换是不可避免的,相应的各种网络应用程序都将支持 IPv6.对于 Java,从其 1.4 版开始对 IPv6 提供了较好的支持,对程序员基本屏蔽了 IPv4 和 IPv6 的差异,但其中仍有一些 IPv6 引起的变化需要我们小心处理.针对这一情况,本文介绍了如何运用现有的 Java 技术应对这些变化. IPv6 背景介绍 目前我们使用的是第二代互联网 IPv4 技术,它的最大…
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全>史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,&l…
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全> 推荐数:1684 “优秀的编程实践的百科全书,<代码大全>…
本人最近读完<疯狂java-突破程序员基本功的16课 >读完后,感觉对java基础又有了新的认识,在这里总结一下:一.数组与内存控制 1.1 数组初始化     java语言的数组是静态的,即数组初始化之后,长度不可以变(区别,JavaScript数组可变,是动态的).     初始化分两种:静态初始化,初始化时由程序员指定每个数组元素的初始值,系统决定长度.                             动态初始化,初始化时由程序员指定数组的长度,由系统指定默认值(int为0.bo…
概述 Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler )把字节码转变成机器码的过程 ;还可能是指使用静态提前编译器(AOT编译器,Ahead Of Time Compiler ) 直接把*.java 文件编译成本地机器代码的过程.下面列举了这3类编译过程中一些比较有代表性的编译器.…
大家好,我是乐字节的小乐,今天接着上期文章<Javaweb的概念与C/S.B/S体系结构>继续往下介绍Java Web ,这次要说的是web应用程序. 1. Web 应用程序的工作原理 Web 应用程序大体上可以分为两种,即静态网站和动态网站.早期的 Web 应用主要是 静态页面的浏览,即静态网站.这些网站使用 HTML 语言来编写,放在 Web 服务器上,用户使用浏览器通过 HTTP 协议请求服务器上的 Web 页面,服务器上的 Web 服务器将接收到 的用户请求处理后,再发送给客户端浏览器…
Java虚拟机对于运行时的程序所占内存是有限制的,当我们的项目或者程序很大时,往往会照成内存溢出. 举个例子: public class SmallTest1 { public static void main(String[] args) { byte[] array = new byte[1024*1024*500]; } } 当定义这样一个500MB的数组时,就会造成JVM内存溢出: 而Java虚拟机默认的程序运行能得到的内存大小是随系统的,由Java的api体系结构中,点击Java: 后…
以 Java 调用 Python 为例 1. 使用 Runtime 类 该方式简单,但是增加了 Java 对python 的依赖,需要事先安装python,及python程序依赖的第三方库 Runtime 使用了单例模式,只能使用 Runtime 的 static 方法获取实例 可以调用 exec() 来执行外部程序,返回 Process 对象实例 public class Runtime extends Object // Runtime 直接继承 Object public static R…
如果你在MacOS上使用GDB工具载入Golang程序时无法载入,这篇文章可以解决.本文不具体介绍调试的方法,网上的文章太多了就不赘述了. cgdb使用的是gdb的内核,方法和原理试用本文. 问题分析 最近接触Go语言,看了慕课网的这篇文章,里面介绍的Go函数,有一种JavaScript的风格,把我弄迷糊了.记得刚接触JavaScript的时候,什么匿名函数自执行,弄的是晕头转性.决定使用调试器对这篇文章中的示例代码进行调试. 找了很多文章介绍GDB调试Golang程序的文章都不能载入. Typ…
Java不同压缩算法的性能比较 程序猿 2015-01-21 本文将会对常用的几个压缩算法的…
这篇文章主要介绍了java实现创建临时文件然后在程序退出时自动删除文件,从个人项目中提取出来的,小伙伴们可以直接拿走使用. 通过java的File类创建临时文件,然后在程序退出时自动删除临时文件.下面将通过创建一个JFrame界面,点击创建按钮在当前目录下面创建temp文件夹且创建一个以mytempfile******.tmp格式的文本文件.代码如下: import java.io.*; import java.util.*; import javax.swing.*; import java.…
2016-2017-2 20155319 <Java程序设计>实验四Android程序开发实验报告 实验一 实验内容 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: - 安装 Android Stuidio - 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分…
2016-2017-2 20155338 <Java程序设计>实验四Android程序开发实验报告 实验过程及成果展示 1.修改res目录下的layout文件夹中的activity_main.xml布局文件,使得在模拟机上显示出自己的学号信息. 码云链接 代码如下: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xm…
有时候我们java 调用系统外部的某个程序 可能需要调用系统外部的某个程序,此时就可以用Runtime.getRuntime().exec()来调用,他会生成一个新的进程去运行调用的程序. 此方法返回一个java.lang.Process对象,该对象可以得到之前开启的进程的运行结果,还可以操作进程的输入输出流. Process对象有以下几个方法: 1.destroy() 杀死这个子进程 2.exitValue() 得到进程运行结束后的返回状态 3.waitFor() 得到进程运行结束后的返回状态…
原文地址: http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/ 作者:胡皓 Blog:From Soldier to Programmer – 胡皓的博客 GitHub:https://github.com/howiehu Twitter:@howiehu 新浪微博:@长安胡小闹 CodeSchool:My Report Card 当我开始写这篇文章的时候,我猛然发现,此时此刻距离我辞职(2013年9月13日)至今刚好整整3…
从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力 原文地址:http://blog.huhao.name/blog/2014/03/01/become-a-freelancer-3/ 作者:胡皓 Blog:From Soldier to Programmer - 胡皓的博客 GitHub:https://github.com/howiehu Twitter:howiehu 新浪微博:Howie-Hu 前作:<从士兵到程序员再到SOHO程序员 (一) - 起航><从士兵到程序…
程序间达成的某种包含了信息交换的形式和意义的共识称为协议,用来实现特定应用程序的协议叫做应用程序协议.大部分应用程序协议是根据由字段序列组成的离散信息定义的,其中每个字段中都包含了一段以位序列编码(即二进制字节编码,也可以使用基于文本编码的方式,但常用协议如:TCP.UDP.HTTP等在传输数据时,都是以位序列编码的)的特定信息.应用程序协议中明确定义了信息的发送者应该如何排列和解释这些位序列,同时还要定义接收者应该如何解析,这样才能使信息的接收者能够抽取出每个字段的意义.TCP/IP协议唯一的…
  我们公司用两周的时间开发了一款微信小程序,叫<如e支付>,大家可以去体验一下.由于接口都是写好的,所以开发起来很快.我将从4个不同的角度来介绍我对微信小程序的理解. 1.技术的角度   大家都说开发一个小程序简单,因为一套代码安卓iOS都可以用.我想说的是大部分确实是如此,因为不就是网页嘛?但是有些个还是需要适配的,例如input控件,当type=number,设置maxlength属性,iOS有效,安卓就无效了,我的解决方案就是写js单独适配安卓.但是后台你一样需要开发,我们用了两周时间…
CentOS7中_带sqlite3_CGO的golang程序_交叉编译到arm中 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-10-28. 编写了个golang程序,用到了这个CGO库github.com/mattn/go-sqlite3,用来支持sqlite3. 在x86_64机器中编译运行都ok.另有一台arm机器,装了armbian. 想在x86_64机器中交叉编译到arm64,碰到了一些问题. 经过摸索,似乎解决了.写下笔记给后来人参考. 环境: x86_64机器,…
原文:http://lday.me/2017/02/27/0005_gdb-vs-dlv/ 通过log库输出日志,我们可以对程序进行异常分析和问题追踪.但有时候,我也希望能有更直接的程序跟踪及定位工具能够帮助我们更方便快捷的追踪.定位问题,最直观的感觉还是使用调试器.Linux平台下,原生的C/C++程序,我们往往使用gdb进行程序调试,切换到Golang,我们同样还是可以使用gdb进行调试.同时我们还可以使用golang实现的调试器dlv进行调试.以下内容是我对gdb以及dlv使用及对比总结…
背景 现在很多软件都支持集群部署,但是测试环境通常资源有限,所以一般通过单台机器模拟集群部署(使用不同端口,运行相同jar包),本文的目的就是通过多种方式实现此需求. 两个程序 1.jar程序 ① springboot程序 ② 只包含一个main方法,用于启动程序,输出进程ID ③ 路径:C:/demo.jar(windows) /demo.jar(Linux) 2.启动程序 ① 包含main方法的程序 多种方式 1.通过URLClassLoader加载jar程序(windows平台) 2.通过…
windows PE/COFF章总结 本章学习了windows下的可执行文件和目标文件格式PE/COFF.PE/COFF文件与ELF文件非常相似,它们都是基于段的结构的二进制文件格式.Windows下最常见的目标文件格式就是COFF文件格式,微软的编译器产生的目标文件都是这种格式.COFF文件有一个很有意思的段叫".drectve段",这个段中保存的是编译器传递给链接器的命令行参数,可以通过这个段实现指定运行库等功能.Windows下的可执行文件.动态链接库等都使用PE文件格式,PE文…