java中一个重要思想:面向对象】的更多相关文章

面向对象: 1, 面向过程的思想(合适的方法出现在合适的类里面) 准备去一个地方: 先买车, 挂牌, 开导航, 踩油门, 过黄河, 穿越珠穆朗玛峰... 2, 面向对象的思想 我开着车去, 车怎么去随便所有去这个地方的信息, 全部封装在这个车里面, 我不了解这个车是怎么运行的, 我也不需要了解, 我只知道我能到达这个地方就行了面向对象的基本思想是, 从现实世界中客观存在的事物出发, 来构造软件系统, 并在系统的构造中尽可能的运用人类的自然思维方式, 面向对象是目前人与计算机沟通最简单的语言思想…
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:String str = new String(); :其中str为引用,并创建了一个对象. 引用 如果一个变量的类型是类的类型,不是基本数据类型,那么这个变量就叫做引用. 对 Person person = new Person(); 这个的理解: person叫做引用,new Person() 为创建了…
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() 初始需求 需求:支持Json数据源加载 具体:输入一个path,需要返回一个Relation, Relation中提供scan()和write()两个方法 示意代码: class Context{ public Relation json(String path){ return new Relat…
java中一个字符串是另外一个字符串的字串 String类中有一个方法 public boolean contains(Sting s)就是用来判断当前字符串是否含有参数指定的字符串例s1=“takecatb”s2=“te”语句:s1.contains(s2) //s1调用这个方法 若其值为ture说明s1包含s2 若为fasle 则不包含…
前两天去面试javaweb问到一个问题,在你的项目中有没有用到线程,我特么的一想,这东西不是在c层面的吗,所以说我不了解线程..... 后来回去想啊想啊,我操这特么的不是再问我事物的控制,消息队列的回调?这特么的是什么面试 下面写出我这两天的答案,另附文章比较长大部分都是引用书本或个人博客 程序要靠上下文(context)来描述当前做的工作,防止忽略之前的数据,当然我们学习也要有个铺垫 在此列出以便有些我没有讲到的知识被忽略 [多问几个为什么]为什么匿名内部类中引用的局部变量和参数需要final…
java中,线程的状态使用一个枚举类型来描述的.这个枚举一共有6个值: NEW(新建).RUNNABLE(运行).BLOCKED(锁池).TIMED_WAITING(定时等待).WAITING(等待).TERMINATED(终止.结束). 但是我发现大多数人的理解和上面的这六种还是有些差别,通常会加上阻塞状态,可运行状态,挂起状态. 这是Thread类描述线程状态的枚举类的源代码: public enum State { /** * Thread state for a thread which…
在Java中,char的长度是2字节,即16位,2的16次方是65536. 1.如果采用utf-8编码,一个汉字占3个字节,char为什么还能存下一个汉字呢? 参考:https://developer.aliyun.com/ask/65417?spm=a2c6h.13159736.https://blog.csdn.net/shipfei_csdn/article/details/81900952.https://blog.csdn.net/Sugar_Z_/article/details/51…
在java中,数组不能放不同数据类型的值. 方法一: 多态 定义数组类型的时候定义为父类,而存进数组为父类的子类 public class test2 { public static void main(String args[]) { father []a = new father[2]; a[0] = new son(); a[1] = new son2(); } } class father{ int i = 0; } class son extends father{ int x = 0…
因为有用到分页,首先建一个page类 1 public class Page<T> { 2 private int pageSize; //每页显示条数 3 private int curPage = 1; //当前页,默认从1开始 4 private long total; //总记录数 5 private int pages; //总页数 6 private List<T> list; //页面列表数据 7 public Page() { 8 pageSize = 5; //默…
背景   char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char   char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节,那么就意味着只能存储256中,显然不合适,而如果有两个字节,那么就可以存储65536种.这个数量符合大多数国家的语言字符的个数.于是Java团队默认使用unicode作为编码,一个char作为2个字节来存储.   这里就有两个问题了?     1. java的char一定会…
import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set;   public class MinMapDemo {       public static void main(String[] args) {         Map<Integer, Integer> map = new HashMap<…
首先在tomcat服务器下的webapps的download项目下建一个doc文件夹,再建个test.doc.防止控指针异常 DownLoad.java代码 package com.down; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.ser…
一.MultiValueMap介绍,与map,HashMap相差不多 添加一个Key对应一个Value的:void add(K, V); 添加一个Key对应多个Value的:void add(K, List); 设置一个Key对应一个Value的:void set(K, V); 设置一个Key对应多个Value的:void set(K, List); 移除一个Key和它对应的Value:List remove(K); 清除所有Value的:void clear(); 拿到所有Key的集合:Set…
方法一:把类声明为final 方法二:对类中的构造器声明为private,类中提供一个static方法,完成对类的初始化.如下代码: public class Base{ private Base(){} public static Base ini(){ Base a=new Base(); return a; } public static void main(String[] args) { Base base=Base.ini(); } }…
这是一块非常简单的Java代码片段: public class HelloWorld{ public static void main(String []args){ int product = 1; for (int i = 10; i <= 99; i++) { product *= i; } System.out.println(product); } } 为什么得出的结果是0呢? 问题现象 蛋疼的同学可能会发现这个程序执行的规律: 1 * 10 = 10 10 * 11 = 110 11…
ICEREST 是一个非常轻量级只有 200k 左右的 RESTful 路由框架,通过 ICEREST 你可以处理 url 的解析,数据的封装, Json 的输出,和传统的方法融合,请求的参数便是方法的参数,方法的返回值便是请求的返回值,原则就是:你会写方法,你就会用. 源代码  https://github.com/T-baby/ICEREST…
1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); 5 Sys…
//StringTokenizer st1=new StringTokenizer("rirtirtjdlkfjlksadfoiyetryetretrejtlkjdsflkiuetuiojrelktjwlkeir","e");          // System.out.println(st1.countTokens()+"-----可以计算出现的次数");         System.out.println(st.countTokens()…
1.想在运行时抛出异常,终止方法的运行 private final Set<Long> THREADS = new HashSet<>(); public void someMethod () { if (THREADS.contains(Thread.currentThread().getId())) { throw new RuntimeException("该线程不能再调用这个方法"); } THREADS.add(Thread.currentThread…
n&1 把n与1按位与,因为1除了最低位,其他位都为0,所以按位与结果取决于n最后一位,如果n最后一位是1,则结果为1.反之结果为0.(n&1)==1: 判断n最后一位是不是1(可能用来判断n值的奇偶性).…
递归就是自己调自己,最需要注意的就是结束条件,否则可能就是死循环,导致内存溢出 public T a(Object x,Object y) { if(条件true) { a(x1,y1); } else { return f(x,y); } } 例如: 1.求阶乘 5!=5x4x3x2x1 分析:递归是一层一层推进,第一层是 5*4,第二层4*3,第三层,3*2,递归入参分别是5,4,3,2,1,当为1时返回1,递归终止 public int f(n) { if(n=1) { return 1:…
2)this代表的是本类的实例对象,不是什么调用本类的方法的对象.当你用new创建一个对象的时候,对象就已经在内存了.(具体的你的血jvm和反射).构造方法只是为了给对象里的属性赋值.在类里任何地方出现的this都是指的本类的实例对象,构造方法里的也…
转载,原文来自http://blog.sina.com.cn/s/blog_5f79a56a0100c6ig.html 众所周知,java中的面向对象的三大基本特征是:[封装].[继承].[多态] 一.封装         对象要有一个明确的边界:边界的划分(对象各司其职.对象的粒度.对象的可重用性)         具体来说:                 1.属性: 私有 private(提供set和get方法)                 2.方法: 公开或私有public/priv…
堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大.使用栈内存就象我们去饭馆里吃饭,只管点菜(发出申请).付钱和吃(使用),吃饱了就走,不必理会切菜.洗菜等准备工作和洗碗.刷锅等扫尾工作,他的好处是快捷,但是自由度小.操作系统中所说的堆内存和栈内存,在操作上有上述的特点,这里的堆内存实…
1.继承 java 和某些面向对象语言(如 c++)在实现继承的不同之处在于java只支持单继承,不支持多重继承.即java 中一个类只能继承于另一个类.我们将被继承的类称之为父类(基类),继承类称之为子类(派生类).在java 中用关键字extends 来实现单继承.实现继承关系的类之间有着必然的联系,不能将不相关的类实现继承,就象人类不能继承于鸟类!        那怎么去判断类和类之间是否有着必然联系呢?实际上,前面我们已知当某类A和类 B之间有着共同的属性和行为时,那么类A 和类 B之间…
Post@https://ryan-miao.github.io 背景 还是多语言, 在项目中遇到本地环境和服务端环境不一致乱码的情形.因此需要搞清楚乱码产生的过程,来分析原因. 获取多语言代码如下: private Map<String, String> getLocalizationContent(Locale locale) { ResourceBundle bundle = ResourceBundle.getBundle(this.resourceBundleName, Locale…
类 类是JAVA中一个重要的概念,可以把类理解成一个对象的抽象,这个抽象的对象包含了变量(用来描述这个对象的属性)和方法(用来描述这个对象可以干什么),类中的各个成员之间可以相互调用(static修饰的成员不能访问没有static修饰的成员). 而每个类中又必须有一个或者多个构造方法,这个构造方法用来将这个抽象的对象实例化. 类的定义格式为 [修饰符] class 类名{ 构造函数; 成员变量; 方法; } 在类中的构造函数.成员变量和方法都可以是0个或者多个 类的修饰符可以使用public.f…
static关键字和final关键字是Java中一个难点&重点.本文通过static的用途.常见问题.final的用途.final常见问题,以及static和final的对比来解释这两个关键字. static(唯一性) static能修饰哪些 成员方法 成员变量 代码段 内部类 注:static不能修饰局部变量 static的常见问题 static修饰的属性在类加载的时候进行初始化,static修饰的属性所有对象都只有一个值. static修饰的属性强调它们只有一个. static和"t…
现在的编程语言越来越复杂,尽管有大量的文档和书籍,这些学习资料仍然只能描述编程语言的冰山一角.而这些编程语言中的很多功能,可能被永远隐藏在黑暗角落.本文将为你解释其中5个Java中隐藏的秘密,可以称其为Java的“黑魔法”.对于这些魔法,会描述它们的实现原理,并结合一些应用场景给出实现代码. 1. 一石二鸟:实现注释(Annotation) 从JDK5开始,Java开始引入注释功能,从此,注释已成为许多Java应用程序和框架的重要组成部分. 在绝大多数情况下,注释将被用于描述语言结构,例如类,字…
作为作为一个已经入了门的java程序猿,肯定对Java中的String.StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的.但肯定你有一点很好奇,为什么java中有三个关于字符串的类?一个不够吗!先回答这个问题,黑格尔曾经说过--存在必合理,单纯一个String确实是不够的,所以要引入StringBuffer.再后来引入StringBuilder是另一个故事了,后面会详细讲到. 要了解为什么,我们就得先来看下这三者各自都有什么样的特点,有什么样的…