365bet线上

青岛软件培训学校

山东最好的软件培训机构,专业培养高端IT人才 咨询热线:0532-85025005

[置顶] 青软人

Java对象及其内存管理

读书笔记:《疯狂java 程序员的基本修养》第二章——对象及其内存管理

java中的内存管理分为两个方面:

内存分配:指创建java对象时JVM为该对象在堆空间中所分配的内存空间。

内存回收:指java 对象失去引用,变成垃圾时,JVM的垃圾回收机制自动清理该对象,并回收该对象所占用的内存。

虽然JVM 内置了垃圾回收机制,但仍可能导致内存泄露、资源泄露等,所以我们不能肆无忌惮的创建对象。此外,垃圾回收机制是由一个后台线程完成,也是很消耗性能的。

1.实例变量和类变量

java程序中的变量,大体可以分为 成员变量 和 局部变量 。其中局部变量可分为如下三类:
...

新入行程序员须知的8件事

1.良好的沟通能力。

工程管理是一个团队活动,哪怕有时候这个团队只有你一个人。由于每时每刻都有那么多事情需要相互了解,所以沟通就成为了最大的问题。90%的工程管理指的就是沟通。比如,我们得向人解释bug是什么?如何有效诊断?如何向大家完整地表述自己的复杂想法?沟通是项目成功最关键的因素。无效的沟通只会导致大量时间和精力的浪费。

2. 计算机科学的基础。

要想作为成为一名优秀的程序员,计算机科学的基础是必不可少的,但是,老实说,计算机科学和计算机工程真是两码事。不过要想成为优秀的工程师,就得有这个好奇心喜欢专研计算机的发展趋势和计算机的工作原理,包括深层次地了解新趋势可能存在的误区,以及一些替代性的解决方案,这样才有和其他工程师交流的资本。算法,除非是在面试中,其他时候用处不大。我的意思是,大多数情况下有类库就足够了。不过这并不意味着可以完全无视数据结构和算法。此外,推理代码和优化仍然很重要,尤其是在规模化的时候。
...

Java语言基础三

1,Java中的继承是单继承,不同于C++,但是可以通过interface实现类似于多继承的功能。父类对之类的重写会覆盖父类的实现。同C++不同,Java默认的绑定都是晚绑定(多态),只有被final修饰的函数是早绑定的。interface Shape { publicvoid draw();}interface Action{ publicvoid action();}class Arc{ intlength; publicvoid draw(){ System.out.println("arc-draw"); }}publicclassCircle extendsArc implementsShape, Action{ publicvoid action() { System.out.println("circle-action"); } publicvoid draw(){ System.out.println("circle-draw"); } publicstaticvoid main(String args[]){ Shapeshape= newCircle(); shape.draw(); }}以上输出circle-drawCircle通过继承接口实现类似多继承功能,在Circle中实现了Action接口中的action(),并且覆盖了Arc中的该同名函数。2,Java中final关键字可以修饰变量,函数和类。修饰变量时,该变量必须在定义时初始化,作为类的成员变量也可以放在类的构造函数中初始化;修饰函数时,该函数在其子类中不能被覆盖,同时该函数为后绑定函数,编译器在编译时把该方法的调用编译为inline调用;修饰类时,该类不能被集成,该类中的所有函数也都是final的。Private的函数也是final的,所以private的函数调用类似于final的函数调用。3,Java中的抽象类通过abstract来定义的,不向C++通过纯虚函数来定义的。Java中通过abstract来定义的函数是抽象函数,抽象函数没有函数体,如果一个类继承与个抽象类,但是必须全部实现抽象父类的抽象函数,否则继承类也是抽象类。4,比C++不同,Java中有个和类平级的interface,在interface中的所有成员变量为public static final的,所有成员函数都是public的。在interface中的所有函数不能有函数体,只能是一个函数声明。实现interfaceclass必须实现interface中的所有函数。在系统开发中经常利用interface中的成员变量属性来定义系统常量。5,Java中的类可以定义在另外一个类的内部,叫做内部类。内部类类似于C++中的friend的功能,内部类能够访问外部类的private变量和函数。6,Java内部类也叫做成员类,所有能够修饰的成员变量的关键字也都能够修饰内部类。常用的先从安全的单例通过静态内部类:publicclassSingleton { privatestaticclass SingletonHolder {privatestaticfinal Singleton INSTANCE = new Singleton(); } private Singleton() { } publicstaticfinal Singleton getInstance(){ return SingletonHolder.INSTANCE; }}静态内部类SingletonHolder可以调用外部类Singleton的私有构造函数,而外部无法构造Singleton对象。静态内部类SingletonHolder在类加载时就加载,同时内部类SingletonHolder在加载时又加载内部静态变量INSTANCE实现Singleton的初始化构造,完成对象创建。7,内部类在编译时也单独编译成一个独立的.class文件。8,内部类通常用来实现类的封装,在多组开发人员开发系统时,可以仅仅通过接口约定来实现系统之间的衔接,而彼此之间实现完全的系统封装。interface Iclass{ void print();}class OutClass { class InnerClass implements Iclass{ @Override publicvoid print() { System.out.print("InnerClass"); } } public Iclass instance(){ returnnew InnerClass(); }}publicclassTestIClass{ publicstaticvoid main(String arsg[]){ Iclassclss= newOutClass().instance(); clss.print(); }}以上输出InnerClass以上clss自己并不知道自己是怎么实现的,对于TestIClass来说OutClass对接口实现了完全的封装,但是并不影响clss对print()的调用。以上笔记,如有错误请指正...

Android系统中的进程管理

对于操作系统来说,进程管理是其最重要的职责之一。

考虑到这部分的内容较多,因此会拆分成几篇文章来讲解。

本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建。

本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者。

概述

Android系统以Linux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机制。例如:

1.通过fork来创建进行

2.通过信号量来管理进程

3.通过proc文件系统来查询和调整进程状态等

...

程序员,你为什么值这么多钱?

听说一段时间不加薪,人就会开始思考起和工资有关的问题。消费水平又提升了,能力也进步了,经验也更多了,怎么还没涨工资呢?

近两年,有了点余钱就开始考虑起投资来,比如:投资股票首先需要判断的就是关于公司价值和价格的关系。回到个人身上,似乎工资也就是个人价值在市场上的一个价格。那我们的工资是如何被定义或确定的?

因为我的程序员职业背景,下面就以这个职业为例来分析下这个问题。

表象与实质

工资的高低给我们的感觉似乎和你的技能、经验呈一个正比关系。毕竟每次找工作面试的时候,考察的都是候选人的技能、经验相关水平,然后给予一个相应的级别,最后确定一个工资范围。而且一般有正规工资体系的公司,都会按照专业水平划分能力级别,以此对应不同的工资等级。
...

Java for循环的几种写法

J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。
在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。
...

这11个观点可能会让你和深度学习擦肩而过...

我大部分走路的时间还有睡梦中的潜意识里都会琢磨着Deep Learning 的问题。Peter Thiel 有一个很有名的说法——“最后一个公司的优势”。意思是你可能不需要具备“第一启动的优势”,但是你一定要成为你行业里最后一个站着的公司。就像Google有可能是最后一个搜索引擎公司,Amazon有可能是最后一个做电商的, Facebook希望不是最后一个社交网络公司等。但是让我夜里辗转反侧的是——深度学习有可能会是“人类最后一个发明”(Last Invention of Man)。

但是,咱们先别想那么远。不管怎样,Kurzweil在他《奇点临近( Singularity)》一书中预计在2045年实现的设想也是30年之后的事情。我们现在要做的就是在这30年里弄清楚想生活在像电影《极乐(Elysium)》中那样,还是什么别的不知名的腐烂废水里。
...

推荐系统老司机的十条经验

一年一度的ACM Recsys会议在9月份已经胜利闭幕,留下一堆slides和tutorials等着我们去学习。

翻看今年的各种分享,其中老司机Xavier Amatriain的分享引起了我的兴趣:Lessons Learned from Building Real--Life Recommender Systems。主要分享了作为推荐系统老司机的他,多年开车后总结的禁忌和最佳实践,这样的采坑实录显然是很有价值的。


Xavier Amatriain,曾任Netflix的算法总监,现任Quora的工程副总裁。
...

Java中的static关键字解析

static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲:


一. static关键字的用途
二. static关键字的误区
三. 常见的笔试面试题

一.static关键字的用途

在《Java编程思想》P86页有这样一段话:

“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
...

程序员到底有多苦?

各位,请从前端和后端等各角度分开说,为什么还有那么多人想转行当程序员?谢谢!补充:有程序员在家办公吗?
本期我们聊聊程序员的辛苦!

晨池,缓则,哪里走?!带上我!
代码水平不高的时候,天天加班也干不完,还说其实是喜欢。
随着代码水平的提高,注释写的越来越少,话也越来越少了。
话说得少了,觉得办公室气氛变得有点压抑,于是离职换了一家公司。
在新的公司还是那么忙,于是经常幻想老了就可以轻松点,却发现脑门子越来越大,眼睛看不清楚了胳膊腿儿越来越细,肚子越来越大,原来已经提前老了,但是还要加加班。
...
分页:? 首页...?1[2][3][4][5]?...尾页 ?

日历

Copyright 2007-2013 青岛软件培训学校(青岛市南京路122号中联广场B1栋3楼) 咨询热线:0532-85025005  鲁ICP备09077726号-3  
百度搜索|Google搜索 | 必应Bing | Yahoo搜索 | 搜狗搜索 | 有道搜索 | 搜搜 |