5 aluluka

尚未进行身份认证

暂无相关描述

等级
TA的排名 1w+

Java 学习笔记(15)——反射

Java中的类文件最终会被编译为.class文件,也就是Java字节码。这个字节码中会存储Java类的相关信息。在JVM执行这些代码时首先根据java命令中指定的类名找到.class文件然后使用类加载器将class字节码文件加载到内存,在加载时会调用Class类的classLoader方法,读取.class文件中保存类的成员变量、方法、构造方法,并将这些内容在需要时创建对应的对象。这个...

2019-08-18 13:34:18

Java 学习笔记(14)—— 文件操作

java文件操作主要封装在Java.io.File中,而文件读写一般采用的是流的方式,Java流封装在java.io包中。Java中流可以理解为一个有序的字符序列,从一端导向到另一端。建立了一个流就好似在两个容器中建立了一个通道,数据就可以从一个容器流到另一个容器文件操作Java文件操作使用java.io.File类进行。该类中常见方法和属性有:staticStringpat...

2019-07-21 14:06:49

Java 学习笔记(13)——lambda 表达式

在写Java代码的时候,如果某个地方需要一个接口的实现类,一般的做法是新定义一个实现类,并重写接口中的方法,在需要使用的时候new一个实现类对象使用,为了一个简单的接口或者说为了一个回调函数就得额外编写一个新类,即使说使用匿名内部类来实现,这样似乎比较麻烦。C中的做法是直接传入一个函数指针,而Java中就需要上述麻烦的操作,能不能简单点呢?为此Java中引入了一个lambda表达式的功能。la...

2019-07-14 20:07:33

Java 学习笔记(12)——多线程

Java内部提供了针对多线程的支持,线程是CPU执行的最小单位,在多核CPU中使用多线程,能够做到多个任务并行执行,提高效率。使用多线程的方法创建Thread类的子类,并重写run方法,在需要启动线程的时候调用类的start()方法,每一个子类对象只能调用一次start()方法,如果需要启动多个线程执行同一个任务就需要创建多个线程对象实现Runnable接口并重写run方法,传入这...

2019-07-07 12:24:13

Java 学习笔记(11)——异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。Java中的异常主要分为下列几类:检查性异常:最具代表的...

2019-06-30 12:01:51

Java 学习笔记(10)——容器

之前学习了java中从语法到常用类的部分。在编程中有这样一类需求,就是要保存批量的相同数据类型。针对这种需求一般都是使用容器来存储。之前说过Java中的数组,但是数组不能改变长度。Java中提供了另一种存储方式,就是用容器类来处理这种需要动态添加或者删除元素的情况概述Java中最常见的容器有一维和多维。单维容器主要是一个节点上存储一个数据。比如列表和Set。而多维是一个节点有多个数据,例如M...

2019-06-23 15:08:10

Java 学习笔记(9)——java常用类

之前将Java的大部分语法都回顾完了,后面添加一些常见的操作,基础语法就结束了。至于在这里再次提到常用类是由于有一部分体现在使用它的继承类或者接口之类的。这些需要有面向对象编程的基础Object类Object类是所有类的基类,只要定义了类,即使没有显式的声明继承自Object类,也会从该类继承。这个类没有什么是需要显式调用的,很多东西都需要重写类的方法来达到相关效果,比如常用的两个方法:...

2019-06-16 22:27:45

Java 学习笔记(8)——匿名对象与内部类

一般在编写代码时可能会遇到这样的场景——在某些时候,我需要定义并某个类,但是只会使用这一次,或者是某个类对象只会使用一次,为它们专门取名可能会显的很麻烦。为了应对这种情况,Java中允许使用匿名对象和匿名内部类的方式来解决这个矛盾匿名对象普通的类对象在使用时会定义一个类类型的变量,用来保存new出来的类所在的地址。而匿名类取消掉了这个变量,这个地址由编译器来处理,并且在new出来之后,它占用...

2019-06-09 21:17:21

Java 学习笔记(7)——接口与多态

上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是Java中的多态以及利用多态形成的接口多态当时在学习C++时,要使用多态需要定义函数为virtual,也就是虚函数。类中存在虚函数时,对象会有一个虚函数表的头指针,虚函数表会存储虚函数的地址,在使...

2019-06-01 13:15:51

Java 学习笔记(6)——继承

之前说过了Java中面向对象的第一个特征——封装,这篇来讲它的第二个特征——继承。一般在程序设计中,继承是为了减少重复代码。继承的基本介绍publicclassChildextendsParent{//TODO}使用继承后,子类中就包含了父类所有内容的一份拷贝。子类与父类重名成员的访问。重名属性当子类与父类中有重名的数据成员时,如果使用子类对象的引用进行调用,...

2019-05-25 14:15:28

Java 学习笔记(5)——java 常见类

上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法。其实Java相比于C来说强大的另一个原因是Java中提供了大量可用的标准库字符串字符串可以说是任何程序都离不开的东西,就连一个简单的helloworld程序都用到了字符串,当时C语言中对字符串的支持并不太好,C语言中的字符串实质上是一个字符数组。为...

2019-05-18 14:29:28

Java 学习笔记(4)——面向对象

现在一般的语言都支持面向对象,而java更是将其做到很过分的地步,java是强制使用面向对象的写法,简单的写一个HelloWord都必须使用面向对象,这也是当初我很反感它的一点,当然现在也是很不喜欢它这一点。但是不得不说它设计的很优秀也很流行。面向对象面向对象一般是将一些独立有相似功能的模块封装起来组成一个类,然后调用者不必关注实现细节而只需要关注调用某个类方法即可。面向对象简化了程序设计...

2019-05-12 22:08:46

Java 学习笔记(3)——函数

之前的几篇文章中,总结了java中的基本语句和基本数据类型等等一系列的最基本的东西,下面就来说说java中的函数部分##函数基础在C/C++中有普通的全局函数、类成员函数和类的静态函数,而java中所有内容都必须定义在类中。所以Java中是没有全局函数的,Java里面只有普通的类成员函数(也叫做成员方法)和静态函数(也叫做静态方法)。这两种东西在理解上与C/C++基本一样,定义的格式分别为:...

2019-05-05 13:09:59

Java 学习笔记(2)——基本语句、控制结构

上一篇中简单谈了一下自己对Java的一些看法并起了一个头,现在继续总结java的相关语法。java语法总体上与C/C++一样,所以对于一个C/C++程序员来说,天生就能看懂Java代码。在学习java的时候,上手非常快。我感觉自己就是这样,看代码,了解其中一些重点或者易错点的时候发现,与C/C++里面基本类似,甚至很多东西不用刻意去记,好像自己本身就知道坑在哪。所以这里我想简单列举一下语法点,然后...

2019-04-27 12:14:28

Java 学习笔记(1)——java基础语法

最近抽时间在学习Java,目前有了一点心得,在此记录下来。由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验,补充一些需要注意的点,或者java中独特的内容,或者将C/C++进行对比来总结一下学习的内容。为什么要学习java最开始接触到Java还是在学校中开设的一门java编程语言的课,那个时候感觉j...

2019-04-20 14:12:23

VC+++ 操作word

最近完成了一个使用VC++操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visualstudio2008导入接口首先在创建的MFC项目中引入word相关组件右键点击项目-->添加-->新类,在弹出的对话框中选择Typelib中的MFC类。然后在弹出的对话框中选择文件,从文件中导入MSWORD.OLB组件。这个文件的路径一般在C:\Pro...

2019-04-14 15:23:32

算法与数据结构(七):快速排序

在上一篇中,回顾了一下针对选择排序的优化算法——堆排序。堆排序的时间复杂度为O(nlogn),而快速排序的时间复杂度也是O(nlogn)。但是快速排序在同为O(n*logn)的排序算法中,效率也是相对较高的,而且快速排序使用了算法中一个十分经典的思想——分治法;因此掌握快速排序还是很有必要的。快速排序的基本思想如下:在一组无序元素中,找到一个数作为基准数。将大于它的数全部移动到它的右侧,...

2019-04-06 13:43:09

算法与数据结构(六):堆排序

上一次说到了3种基本的排序算法,三种基本的排序算法时间复杂度都是O(n^2),虽然比较简单,但是效率相对较差,因此后续有许多相应的改进算法,这次主要说说堆排序算法。堆排序算法是对选择排序的一种优化。那么什么是堆呢?堆是一种树形结构。在维基百科上的定义是这样的“给定堆中任意节点P和C,若P是C的母节点,那么P的值会小于等于(或大于等于)C的值”。这句话通俗一点就是,树的...

2019-03-31 14:47:19

关于Python的那点吐槽

之前听到过别人有说过Python只是一个玩具做不了大项目,我当时是嗤之以鼻的,不说豆瓣这样的公司采用Python做的网站,GitHub上那么多大项目都是用Python写的,怎么能说Python只是一个玩具呢。直到我参与维护一个Python项目。弱类型一般都说Python的弱类型是程序员的福音,程序员能够更灵活的控制代码,但问题是你在写代码的时候是灵活了,你想过日后维护没有,特别是那些没有注释的...

2019-03-24 12:31:50

算法与数据结构(五):基本排序算法

前面几篇基本上把基本的数据结构都回顾完了,现在开始回顾那些常见的排序算法。排序是将一组无序的数据根据某种规则重新排列成有序的这么一个过程,当时在大学需要我们手工自己实现的主要有三种:选择排序、插入排序和冒泡排序。因为它比较简单,所以这里把他们放到一起作为最基本的排序算法。插入排序插入排序的思路是这样的:首先假设{k1,k2,k3,…,kn}中第一个元素是一个有序序列,从k2开始...

2019-03-23 12:50:44

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。