分类目录归档:编程语言

编程语言相关技术点文章。

Java垃圾回收机制详解

对于Java垃圾回收机制这个问题,一直是Java招聘面试津津乐道的一个问题之一。就好像答不上此问题就证明你不够NX一样。在此将这个问题做一下整理,以备后人方便。

Java语言中一个显着的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制, Java中的对象不再有”作用域”的概念,只有对象的引用才有”作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。 继续阅读

Scala快速入门

#定义变量var

var name = “chen”

name = “zhiguo”

#定义常量val 首次复制后不可以再改变

val two = 1+ 1

#定义函数def,等号左侧是函数名、函数列表和返回值,右侧是函数体实现的表达式。

scala> def addOne(m:Int): Int = m+ 1

addOne: (m: Int)Int

scala> var x = addOne(123)

x: 124 继续阅读

Python入门笔记

Python的语法整体感觉与Swift还是很相似的。下面是学习过程中作的一些笔记,也算是迅速入门的教程了。

#Python默认不支持UTF-8,解决办法:

第一种:

#!/usr/bin/python

#coding:utf-8

print “你好吗”

第二种:

#!/usr/bin/python

#-*-coding:utf-8 -*-

print “你好吗” 继续阅读

Swift迅速入门笔记

用了两晚上的业余时间看了一下苹果的最新开发语言Swift,整理了一下笔记,分享一下。整体来讲确实很好入手的,XCode开发也很方便。
基本知识:

let a = “a”   //定义常亮

var b = “b”   //定义变量
var b:String = “Hello”; var e:Bool = true  //定义带类型的变量
var tus = (“Hello”, 23, 3.14, “aaa”)   //定义元组(Tuples)
println(tus.1)  //打印元组数据
typealias Vais = String //类型重命名
let d: Vais = “chen”
定义函数:
// 返回多个数据
func getName()->(Stirng, Int){
    return (“chen”, 123)
}
var tus2 = getName()
println(tus2.1)
//值类型,引用类型
//值类型:常量变量作为参数传参的时候,传的Copy  String
//引用类型:地址

继续阅读

Java实现按位截取字符串

好久没有写点什么了。原因很简单,忙!近三个月几乎天天加班,基本没有消停过。工作的强度很大,但是没有压力;可是生活的强度并不大,却充斥的满满的。不想开篇就是牢骚满腹,但毕业生被作为廉价劳动力的滋味并不是很好受。今年我终于不再是应届毕业生了,话说我可以作为一个社会招聘去跳槽了吧?
今天要说的一个例子也是我在网上没有找到,而费了很长时间自己解决的。
 例子:
一个字符串:”12345ABC陈陈陈陈12″
使用Java中substring(5,10) = “ABC陈陈” 。而substring(10,12) = “陈陈”,并且它是从第2个陈开始截取的。如果我用substring(5,16),应该会报错的。因为它是按照字符去截取的。但是,我不能按照字符去截取,我需要按照字节来。也就是说我期望的结果是:substring(5,10) = “ABC陈” substring(10,12) = “陈” 而它应该是从第一个陈开始截取的。substring(5,16) = “ABC陈陈陈陈”,似乎Java的方法中没有实现我这个需求的。
所以我只能自己想办法截取它。
 需求:
一个长长的字符串,我要根据定义文件中的每个字段的位数去从头开始截取他们,然后一个个的赋值到字段中去。
思路:
从头开始截取,截完一段后,改变原字符串(即去掉截掉的部分)。然后对待上述文件中的全角字符的时候循环截取,直到截取到定义的长度为止。

继续阅读

VBA数组内去除重复值

最近在VBA的工作中挣扎了一段时间,真是感觉确实没有做Java爽快。或许是我使用不熟的缘故吧,好多需求没法使用现成的函数去实现,这点在Java里做的就比较好。举个简单的例子,数组去重。这点Java里的set就实现了这个功能,set里是没有重复数值的。可以遍历一下放进set取出后就是唯一的数据了。然而在VBA里面我并没有搜索到类似的函数。
为此费劲脑汁写个类似的功能函数,它类似于SQL里面的distinct。原理如下:

遍历数组的时候,在第三层循环里去查询当前值前面的所有值有没有重复项,有重复项就忽略当前值,没有重复项就使用当前值,你可以去存储,去调用都可以。

 

下面是一段类似代码,表现这个去重过程:   继续阅读

VBA相关函数集锦

      公司业务需要,这段时间需要学习VBA,虽然说学过VB,语法方面可能熟悉很多,但是真正应用的时候还是难在相关函数的使用和灵活度上。所以找找相关VBA的资料,觉得这些挺有用的,特别在博客上分享一下。

定制模块行为:

(1) Option Explicit ‘强制对模块内所有变量进行声明
Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示
    Option Compare Text ‘字符串不区分大小写
    Option Base 1 ‘指定数组的第一个下标为1
(2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息
(3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置
(4) On Error GoTo 0 ‘恢复正常的错误提示
(5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示
(6) Application.ScreenUpdating=False ‘关闭屏幕刷新
    Application.ScreenUpdating=True ‘打开屏幕刷新
(7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能
工作簿 继续阅读

Java模拟标准双色球

近期一直在复习Java基础知识,确实不仅补缺查漏,还能增强记忆。同事提了个需求想要模拟一下双色球的输出,顺便练习一下刚学的Collection类。反正闲的没事,就决定练习一下。

一开始我想用Set最为简便,因为其自身值的唯一性,可以很好地去除随机值重复的问题。所以,一会儿就用Set写了下面这个版本。

 

继续阅读