摘要: Java进阶5 面向对象的陷阱 20131103 Java是一门纯粹面向对象的编程语言,Java面向对象是基础,而且面向对象的基本语法非常多,非常的细,需要程序员经过长时间的学习才可以掌握。本章重点介绍的是Java中面向对象中的容易出现的陷阱。1. instanceof 运算符的陷阱 Instanceof运算符前一个操作数通常是一个引用类的变量,后一个操作数是一个类,也可以是接口,用于判断前面的对象是不是后面类或者其子类,如果是的话,则返回true反之则返回false。但是也会有一些陷阱: String str = "yang"; System.out.println( ( 阅读全文
posted @ 2013-11-05 23:21 追梦的飞飞 阅读(296) 评论(0) 推荐(0) 编辑
摘要: Java进阶2 数组内存和对象的内存管理知识 20131028前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏速成,没有在底层掌握Java编程语言。那么面试的时候,你就会发现很多的不会,所以在这个时候切记说你懂Java。 还有有些人面试Java认为就是面试SSH框架,其实个人理解方面,除了那种很小型的公司还有不懂技术的什么什么类型的企业,就会拿SSH器标准你。说一下自己的情况: 我的第一编程语言是C++,同时Java是自己的辅助,可以算的上是本科生中学习Java最好的之一(谦虚点了),但是我自己真的对于SS 阅读全文
posted @ 2013-11-05 23:19 追梦的飞飞 阅读(420) 评论(0) 推荐(0) 编辑
摘要: Java进阶4表达式中的陷阱 20131103 表达式是Java中最基本的组成单元,各种表达式是Java程序员最司空见惯的内容,Java中的表达式并不是十分的复杂,但是也有一些陷阱。例如当程序中使用算术表达式的时候,表达式的类型自动提升,复合赋值运算符所隐含的类型转换,给程序带来一些潜在的陷阱。还有就是JDK1.5之后支持泛型也会带来一些陷阱,因为之前的Java版本是不支持泛型的,为了兼容之前的版本,引入了原始类型的概念,而原始类型在泛型编程中存在着极大的陷阱。1.字符串中的陷阱 JVM对于字符串的处理都会在JVM的字符串缓冲池缓冲字符串,而且java中的字符串类型是不可以改变的,如果经常改字 阅读全文
posted @ 2013-11-05 23:18 追梦的飞飞 阅读(242) 评论(0) 推荐(0) 编辑
摘要: Java进阶3. 内存回收机制 20131029前言: 学过C++的都知道,C++中内存需要程序员自己维护。说道这里,很多开发的同学就感觉很痛苦,当他转向Java的时候,就会说你看Java多好啊,程序员不用自己管理堆的内存了,我们终于可以尽情挥霍了,但实际上真的是这个样子吗?Java真的有这么好吗?其实Java回收垃圾是考的JVM后台的一条线程来运行的,这条线程会不定时的启动来回收垃圾,这样在表面上看来器省去了我们程序员的很多工作,但是后台启动这样的线程去回收垃圾就不耗时吗?不会占用资源吗?其实JVM的垃圾回收线程是十分的消耗资源的,JVM可以回收垃圾,但是不是允许我们程序员尽情挥霍的。 这里 阅读全文
posted @ 2013-11-05 23:17 追梦的飞飞 阅读(276) 评论(0) 推荐(0) 编辑
摘要: Java进阶1. Synchronized 关键字 201310251.关于synchronized的简介: Synchronized 关键字代表对这个方法加锁,相当于不管那一个线程,运行到这个方法的时候,都要检查有没有其他的线程在使用这个方法,如果有的话就要的等待正在使用synchronized方法的线程运行完成之后才可以运行此方法;如果没有的话就直接运行。2.常见的使用方法 Synchronized方法: 使用synchronized关键字声明synchronized方法的形式: public synchronized void accessVal(int newVal); synchro 阅读全文
posted @ 2013-11-05 23:16 追梦的飞飞 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Java 复习9网路编程 20131008前言: Java语言在网络通信上面的开发要远远领先于其他编程语言,这是Java开发中最重要的应用,可以基于协议的编程,如Socket,URLConnection等等,之后面的Web开发就是Servlet开发还有各种框架等等,基本上都是基于网络编程的。在上大二的时候,自己学习过Java网络编程的知识,现在好像都忘了,再有就是JSP,Servlet等等这些编程的知识也都忘得差不多了,所以这一段时间回忆一下关于网络编程和Web编程的知识。1.网络通信编程 TCP/IP(Transport Control Protocol / Internet Protoco 阅读全文
posted @ 2013-11-05 23:05 追梦的飞飞 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Java复习8 多线程知识 20131007前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线程的,具有并发性。 在程序中使用多线程意味着我们可以同时处理多项任务,在实际的开发中,尤其是大型的项目,多线程程序是十分重要的。 同时多线程的程序会带来一定的问题,比如数据的同步、资源的访问等等。在服务器端,使用多线程处理用户的请求等等的知识。1.线程的概念 每一个程序至少运行着一个进程,每一个进程至少包含一个线程。进程可以是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是进程的特殊段 阅读全文
posted @ 2013-11-05 23:04 追梦的飞飞 阅读(258) 评论(0) 推荐(0) 编辑
摘要: Java复习10. Servlet编程知识 20131008前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面的框架没有学习。这个期间,我掌握的就是把java代码和html代码杂糅在一起的JSP页面,同时还有就是Servlet的简单的知识,创建Servlet返回响应,这里才明白服务器的大概原理,根据客户端的请求URL类型分发到不同的地方。然后处理,之后在使用response返回信息。还有学习一点关于Java中数据库乱接操作的知识和一些JSTL标签知识,还好自己有这一部分的笔记。 Servlet是一种独立于平 阅读全文
posted @ 2013-11-05 23:04 追梦的飞飞 阅读(232) 评论(0) 推荐(0) 编辑
摘要: Java复习6.异常处理 20131005前言: Java中的异常处理机制是非常强大的,相比C++ 来说,更加系统。但是我们开发人员没有很好的使用这一点。一些小的程序是没有什么问题的,但是对于大型项目来说,异常处理机制十分重要。在Java中我们使用的异常处理,一般就是捕获异常,输出堆栈中的异常信息,就没了,这些方法仅仅适合开发环节,便于我们调试错误,但是对于后期发布上下的话,这些就没有用了,需要我们恢复错误等等,甚至要重新启动。 本章的就学习一段代码,通过它来学习Java中的异常处理机制。Connection conn = null;OutputStreamWriter out = null; 阅读全文
posted @ 2013-11-05 23:02 追梦的飞飞 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Java复习4.Java中的数组声明方式 201310041.数组声明和初始化, 数组元素和变量一样,可以在定义的时候i进行初始化。数组元素的初始化工作实在编译阶段完成的,可以减少运行时间。 在初始化数组的时候,使用new 关键字创建数组,他只是一个引用,知道将值赋值给引用,初始化的工作才结束。 三种初始化的方法: int a = new int[9]; int a = new int{1,1,1,1}; int a = {1,1,1,1}; 在Java中的数组赋值不能够直接让一个数组等于另一个数组,否则只是简单地数组的引用,Java系统提供了一种数组赋值的方法: System.arrayco 阅读全文
posted @ 2013-11-05 23:01 追梦的飞飞 阅读(241) 评论(0) 推荐(0) 编辑
摘要: Java复习7.输入输出流 20131005前言: Java中涉及数据的读写,都是基于流的,这一块的知识相当重要,而且在Java中的数据,char字符是16bit的,所以存在字节流和字符流的区别。如果是字符文件的输入输出,使用字符流(以Reader/Writer为抽象基类),而其他的数据是二进制的,需要使用字节流(以InputStream和OutputStream为抽象基类)。 其实不止文件,网络数据传输也是输入输出流。目录1.字节流和字符流... 21.1字节输入流:... 21.2字节输出流:... 52.字符流... 62.1字符数据流输入:... 62.2字符数据流输出:... 73. 阅读全文
posted @ 2013-11-05 23:00 追梦的飞飞 阅读(285) 评论(2) 推荐(0) 编辑
摘要: Java 复习5面向对象知识 20131004前言: 前几天整理了C++中的面向对象的知识,学习Java语言,当然最重要的就是面向对象的知识,因为可以说Java是最正宗的面向对象语言,相比C++,更加严格的面向对象的语言。面向对象是JAVA语言最大的特点。1.基本概念面向对象在程序中开始指的是采用封装、继承、抽象的设计方法,如今以发展到整个软件行业,如OOA(面向对象分析), OOD(面向对象设计), OOP(面向对象的编程)。面向对象的特点:对象的唯一性,每一个对象都会有一个唯一的标识,通过标识,可以找到相应的对象,在对象的整个生命周期内对象的标识不会变化。抽象性:将相同的数据结构和操作方法 阅读全文
posted @ 2013-11-05 22:59 追梦的飞飞 阅读(209) 评论(0) 推荐(0) 编辑
摘要: Java 中的变量常量数据类型 20131004前言: 还是国庆节,无聊的很,就没事复习点Java的知识,其实C/C++基本上是现在大型企业面试的语言,但是多学习点Java是没有坏处的,而且,将来工作的话,不可能只会一门C++就不管了,现在的开发工程师都是会使用C++和Java两者都是精通的。话说国庆节结束之后,有一大群公司来招聘,还很多是IT的,那我是去呢,还是去呢?首先声明,我去的话绝对不是篡你们的,可能是考虑到自己的工作地点吧,我想去工作的地方是成都,至于为什么,就是喜欢了,也说不出来为什么(你信吗?)说道正题,本文是关于常见的Java一些知识点总结,重点是Java中的String类的知 阅读全文
posted @ 2013-11-05 22:58 追梦的飞飞 阅读(302) 评论(0) 推荐(0) 编辑
摘要: Java 复习程序的内存管理 20131003前言:国庆节的第三天,大家都回家了,一个人在宿舍好无聊。不过这年头与其说是出去玩不如是说出去挤,所以在学校里还是清闲的好。找工作不用担心了,到时候看着你们慢慢忙;插个话题,大学都没有恋爱过,总之各种原因了;大学毕业之后希望可以早点成家立业,不想一个人飘着了,所以看我笔记的人最好的是给我介绍女朋友了,PS非诚勿扰。 开始正题:之前学习了C++的内存管理,对于写程序有很大的帮助。最近在复习Java,虽然Java没有和C++那样复杂的内存操作,但是编写代码的时候还是要关注Java程序的内存管理知识。好的我们结合C/C++和Java的内存管理整理一下程序的 阅读全文
posted @ 2013-11-05 22:57 追梦的飞飞 阅读(231) 评论(2) 推荐(0) 编辑
摘要: C++ 进阶5 拷贝构造 深度复制 运算符重载 20131026例子: 运行环境是G++ 编译,/** main.cpp** Created on: 2013年10月26日* Author: yangtfei*/#include #include #include #include using namespace std;class Base{private: int val; char * str;public: Base(const char * str, const int v){ this->val = v; int len = strlen(str); this->str 阅读全文
posted @ 2013-11-05 22:55 追梦的飞飞 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Java语言概述 20131003开头语:开发领域,重要的编程语言基本都是C/C++,然后就是Java, C/C++就不用说了,另外掌握Java对你是有很大的帮助的,而且也会扩宽你的择业范围。同时很多网络编程、网站后台开发都是使用java 语言实现,此外Android实际上就是Java编程,所以在C/C++复习基本完成之后,复习一下Java,一起来吧!1.java是一种简单、面向对象、分布式、解释型、健壮安全、可移植、性能优异、多线程的动态语言(在运行期间才将类加载到运行环境中)。 相对C++来说Java抛弃了C++的那些很少使用的难以理解的特性,如运算符重载、多继承、自动的强类型转转。而且J 阅读全文
posted @ 2013-11-05 22:54 追梦的飞飞 阅读(220) 评论(0) 推荐(0) 编辑
摘要: C++知识整理(多益笔试) 20131012前言: 还是关于笔试知识的整理,主要是面向对象的知识还有一些常见的语法知识。1.还是C++内存管理的知识 C++中程序的内存分布如下: 栈:向下增长,可读可写可执行; 堆:向上增长,可读可写可执行; BSS数据段(就是存放未初始化的数据段):向上增长,可读可写不可以执行;如果程序员没有初始化,但是在这一个数据段中的数据会将内存清0,默认初始化是0. .data数据段:向上增长,可读可写不可以执行,就是存放的全局变量、静态变量的(已经初始化); .text 代码段:向上增长,可读可写不可以执行。 分析一下程序中变量: 局部变量、函数参数存放在栈中;静态 阅读全文
posted @ 2013-11-05 22:52 追梦的飞飞 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 并发编程3. 线程的高级内容 20131031 前面讲解了线程的创建退出知识,但是对于线程的高级内容,比如线程的各种状态、操作系统中线程调度的方式,如何控制线程的执行,等等线程的高级内容没有深入的了解,这一章会重点介绍。1.线程的状态 硬件中栈的起始地址是大于结束地址的,随着线程中使用的空间越来越多,栈指针(位域ESP寄存中)的值也会相应的递减。编译器通常会借助线程栈来实现函数调用以及存储一些无法在存储器中保存的数据。 栈的保留大小与提交大小 线程栈大小包括两个部分,一个是保留大小(Reserve Size ) 一个是提交大小(Commit Size)。程序分配内存的时候,可以预先保留一定数量 阅读全文
posted @ 2013-11-05 22:52 追梦的飞飞 阅读(212) 评论(0) 推荐(0) 编辑
摘要: C++进阶3.字节对齐 联合 20131011多益和金山笔试 知识漏洞 20131011前言: 今天下午是多益网络的笔试,整体感觉还好,但是找到很多的知识漏洞。一直笔试到6:00,然后紧张的从会生活区嗑了点饭,然后骑车立马冲到华工参加金山的笔试。(华工没有什么认识的人,微信上认识一个看头像和照片挺漂亮的女生,本来想笔试结束的时候见一下,可惜微信她,直到回到学校才回我,下次吧!)回到正题上,笔试上有很多的知识漏洞,所以整理一下。1.联合的知识 题目是这样的: union { int val; char str[2];} obj; main: obj.str = 10; obj.str = 1; 阅读全文
posted @ 2013-11-05 22:51 追梦的飞飞 阅读(325) 评论(0) 推荐(0) 编辑
摘要: C++ 中的typedef用法 20131011Typedef在C++中是一个关键字,他的用法有多重,但是自己又说不全面,所以整理一下:1.用类型的别名 typedef char* PChar; 这里就是使用PChar 代替程序中的char*,在编写程序的时候PChar a 等价于char * a; 不知指针, 如 typedef int INT4;2.为结构体的别名 typedef struct test1{ char a; int b; }Test; 也就是Test 等价于struct test1 使用的时候我们使用 Test a;等价于 struct test1 a; 编程的时候,因为J 阅读全文
posted @ 2013-11-05 22:50 追梦的飞飞 阅读(348) 评论(0) 推荐(0) 编辑