编程语言
吃着火锅x唱着歌
这个作者很懒,什么都没留下…
展开
-
JAVA获取对象类名
对象名.getClass(),与类名.class所得到的字符串相同:String a = new String("aaa");System.out.println(a.getClass() == String.class); //返回true原创 2019-03-07 23:38:23 · 4263 阅读 · 0 评论 -
JAVA多态
由于父类与子类的关系为由一般到特殊的关系,因此可以:fruit a = new apple(); //父类引用变量可以指向子类对象因此,需要父类对象的地方可以将子类对象放过去,一个父类可以有多个子类,因此,一个父类型的对象在执行同一种方法时会出现多种被子类重写的方法情况,导致同一类型对象的同一方法出现不同的执行情况,叫做多态。多态跟设计模式联系在一起,增加了java语言的灵活性。JAV...原创 2019-03-05 00:15:48 · 106 阅读 · 0 评论 -
JAVA instanceof
判断一个对象是否是类型的实例。此运算符只有对象类型和类相同或两者有继承关系才能用,否则编译报错。如:Object a = "hh";System.out.println(a instanceof String); //返回trueObject b = new Integer(10);System.out.println(b instanceof String); //返回fa...原创 2019-03-05 21:33:55 · 97 阅读 · 0 评论 -
JAVA方法重载
唯一确定一个方法:调用方法的人;方法名;形参。因此只有返回值不同的同名方法不能重载。原创 2019-03-02 17:41:56 · 102 阅读 · 0 评论 -
递归
递归包含着一个隐式的循环,在方法中再次调用自己。原创 2019-03-02 17:20:19 · 98 阅读 · 0 评论 -
javap命令
反编译类,查看.class中的反编译代码。javap -c 类名原创 2019-03-02 16:54:12 · 112 阅读 · 0 评论 -
JAVA中的算术运算符
一、算术运算符+、-、*、/、%、++、–、二、赋值运算符=、+=、-=、*=、/=三、位运算符以补码计算:&:按位与,运算时带符号位|:按位或,运算时带符号位~:按位非,运算时带符号位^:按位异或<<:按位左移>>:按位右移>&am原创 2019-02-20 21:53:52 · 946 阅读 · 0 评论 -
JAVA直接量
int a = 2;char b = 'f'类似以上的2、'f’等为直接量,直接量可以是8种基本数据类型,也可以是null,但null只能复制给引用变量。原创 2019-02-20 21:29:55 · 369 阅读 · 0 评论 -
JAVA数字转字符串
int a = 555;String b = a + "";原创 2019-02-25 23:30:31 · 1909 阅读 · 0 评论 -
JAVA super
super限定:当方法重写时,在子类中访问重写的方法默认是子类中的方法如果调用方法时:super.方法名()则会调用父类的方法。以上是子类中出现同名方法情况,若子类出现于父类相同的field,则会同时有两个同名变量,访问时默认使用子类的field,super.field可以调用父类的field。super调用:子类的构造器总会调用一次父类的构造器。默认情况下调用父类的无参数构造器,如...原创 2019-03-04 23:12:03 · 116 阅读 · 0 评论 -
JAVA初始化块
作用于构造器基本相同,但优先级更高(在执行构造器代码前执行)语法:修饰符{ 可执行语句;}一个例子:class a{ int a; { a = 5; }}修饰符只能是static(静态初始化块)或省略。由于初始化块没有名字,所以只能被隐式地执行。执行时机:假设一个类中有两个构造器,这两个构造器中有相同的代码,我们就可以把相同的代码提取出来,加到初始化块中,这样...原创 2019-03-05 22:53:34 · 310 阅读 · 0 评论 -
JAVA字符串方法
返回特定位置的字符:String a = "asdf";char b = a.charAt(2); //返回'd'原创 2019-02-26 21:11:22 · 178 阅读 · 0 评论 -
JAVA基本类型的包装类
JAVA中一切都是对象,所有类都是Object的子类,但8个基本类型是例外,不能当做对象用,于是JAVA为基本类型做了包装类,本质还是基本类型但只是被包装过可以被当成对象使用。包装如下:byte - Byteshort - Shortint - Integerlong - Longfloat - Floatdouble - Doublechar - Characterboolean...原创 2019-03-06 00:07:55 · 77 阅读 · 0 评论 -
JAVA对象的equals方法
一切类都是Object的子类,Object有equals方法,因此所有对象都有equals方法。此方法可以按程序自己的规则判断两个对象是否相等,比如以下代码:String a = new String("hi");String b = new String("hi");System.out.println(a==b); //打印falseSystem.out.println(a....原创 2019-03-07 23:34:57 · 1624 阅读 · 0 评论 -
JAVA对象的toString方法
一切类都是Object的子类,Object有toString方法,因此所有对象都有toString方法。打印一个对象时,打印的就是这个对象的toString方法返回值,值为:类名@hashCode因此很多时候需要程序员重写此方法,推荐写法为:@overridepublic String toString(){ return "类名[field1=" + field1 + ",fi...原创 2019-03-07 23:00:46 · 5598 阅读 · 0 评论 -
JAVA abstract修饰符、抽象类、模板模式
abstract只能修饰类和方法,并且不能与final同时出现。抽象类:只有抽象类可以包含抽象方法,但它不能创建实例。抽象类能定义初始化块和构造器,它的初始化块和构造器是为了子类的调用。抽象类也能包含主函数入口。抽象方法:抽象方法没有方法体,即没有{}。abstract与static不能同时修饰一个方法。abstract与private不能同时修饰一个方法。...原创 2019-03-11 00:42:35 · 223 阅读 · 0 评论 -
JAVA final修饰符
final修饰符可以修饰类、所有变量、方法。当final修饰成员变量(类变量或实例变量)时:普通成员变量系统默认赋值,但由final修饰时,必须由程序员指定初始值,因为final修饰的变量只能被赋值一次,成为常量。如果是实例变量,只能在以下三个地方指定初始值:1.声明时。2.非static初始化块。3.构造器。如果是类变量,只能在以下两个地方指定初始值:1.声明时。2.stati...原创 2019-03-11 00:13:53 · 96 阅读 · 0 评论 -
JAVA String的问题
String s1 = “字符串”;String s2 = “字符串”;System.out.println(s1==s2); //输出trueString s3 = new String("字符串");String s4 = new String("字符串");System.out.println(s3==s4); //输出false...原创 2019-03-11 00:13:29 · 163 阅读 · 0 评论 -
JAVA单例模式
单例模式即只能为某个类创建一个实例,为了达到这一目的,首先要隐藏该类的构造器:public class a{ private a(){}}之后暴露一个方法,由方法返回实例:public class a{ private a(){} private static a instance; public static a getInstance() { if(instan...原创 2019-03-10 18:31:48 · 218 阅读 · 0 评论 -
JAVA类继承
描述两个类的关系,从一般到特殊的关系,如车类、货车类,货车类是车类的特殊化,所以货车类(子类)就可以继承车类(基类、超类、父类)。语法:class child extends father{ //类体代码}JAVA最多只允许一个父类,extends后只能写一个类。子类可以获得父类所有方法和field,但不能获得父类构造器,父类的构造器必须有不带参数的构造器。如果你没有显示指定父类...原创 2019-03-03 23:38:30 · 88 阅读 · 0 评论 -
JAVA构造器
构造器是类中的一个特殊的方法,定义时不能加返回值类型,如果加了返回值类型就会变成一个普通的方法,并且方法名和类名相同。构造器的作用是初始化对象,new关键字才是创建对象。...原创 2019-03-03 23:01:48 · 72 阅读 · 0 评论 -
JAVA访问控制修饰符和包
在类中,要合理地隐藏和合理地暴露,隐藏一些不想被外界操作的field、方法、构造器。封装的目的是简化编程、更好地保证对象的完整性。为了实现隐藏,有以下几个修饰符:private:只有当前类访问的。省略修饰符:包访问权限,同一包才能访问。protected:子类、包、当前类可访问。public:公共访问权限。权限从小到大为:private、省略、protected、publicpr...原创 2019-03-03 17:02:51 · 168 阅读 · 0 评论 -
JAVA方法重写(override)
方法重写不同于方法重载(overload),方法重载是相同方法名的方法形参不同可以重载方法,重写是子类从父类继承到的方法不能满足自己的需求时,可以重写方法,重写方法时方法名和形参要完全相同,并且访问权限范围必须大于等于父类的(private<默认<protected<public),子类方法的返回值类型要比父类方法的返回值类型范围更小(byte<short<int&l...原创 2019-03-04 22:12:56 · 259 阅读 · 0 评论 -
JAVA数据类型转换
一、自动类型转换范围小的可以自动转换为范围大的。-&gt;后边的类型可自动转换为前面的类型:byte-&gt;short-&gt;int-&gt;long-&gt;float-&gt;doublechar-&gt;int-&gt;long-&gt;float-&gt;doublebyte和short如果赋值时赋在byte和shor原创 2019-02-20 00:00:03 · 80 阅读 · 0 评论 -
JAVA形参可变数量参数
public class test{ public void info(int...nums) { for(int num : nums) { System.out.println(num); } } public static void main(String args[]) { test t = new test(); t.info(1,5,7,555,6,...原创 2019-02-28 23:59:07 · 179 阅读 · 0 评论 -
遇到的Python 用 for i in 可迭代对象的问题
a = [1,2,3,4,5,6]for i in a : a.remove(i)print(a)对于上边一段代码一直以来我都认为是将a中的全部元素删除,但结果却让我始料未及:[2, 4, 6]将第i个元素删除后,下一次迭代是下下个元素,我猜是删除第i个元素后将其后整体前移一个位置,然后下次迭代使索引+1后就指向下下个元素了。如果哪位大神有更为专业的解释还请多多指教。...原创 2018-10-13 16:04:02 · 2177 阅读 · 0 评论 -
Python集合set的用法
创建集合(括号中只能有一个参数):&amp;gt;&amp;gt;&amp;gt; s = set('set')&amp;gt;&amp;gt;&amp;gt; s{'s', 't', 'e'}&amp;gt;&amp;gt;&amp;gt; s = set(['set'])&amp;gt;&amp;gt;&a原创 2018-10-13 16:25:55 · 164 阅读 · 0 评论 -
Python collections模块
返回列表或字符串等中字符出现次数的字典:&amp;gt;&amp;gt;&amp;gt; import collections&amp;gt;&amp;gt;&amp;gt; a = 'ddsdsdsdsf'&amp;gt;&amp;gt;&amp;gt; collections.Counter(a)Counter({'d': 5, 's': 4,原创 2018-10-13 19:33:12 · 92 阅读 · 0 评论 -
Python字典用法
get() 函数返回指定键的值,如果值不在字典中返回默认值:&gt;&gt;&gt; a = {'a':1,'b':2}&gt;&gt;&gt; a.get('a',0)1&gt;&gt;&gt; a.get('a')1&gt;&gt;&gt; a.get('c',3)3&原创 2018-10-13 19:46:54 · 485 阅读 · 0 评论 -
JAVA注释
单行注释://单行注释多行注释/*多行注释*/原创 2019-02-17 21:10:35 · 118 阅读 · 0 评论 -
JAVA错误: 在类中找不到主方法, 请将主方法定义为:public static void main(String[] args)
一个类只有包含了入口才能运行,这个入口告诉了系统从哪开始运行程序,入口的格式为:public static void main(String[] args)原创 2019-02-17 21:07:16 · 8837 阅读 · 0 评论 -
JAVA命令行编译运行程序
JAVA源程序名扩展名必须是.java,并且主文件名必须是:(1)如有public类必须写public类的名。(2)如没有public类则主文件名任意。编译源程序:javac -d 目录名 源文件以上命令中-d 目录名代表将编译产生的二进制码文件(.class文件)存放的位置,文件名为类名.class(源文件中几个类生成几个class文件),无需指定产生的文件的文件名。运行.clas...原创 2019-02-16 23:02:23 · 889 阅读 · 0 评论 -
JAVA JRE JDK
JRE(Java Runtime Environment)=JVM+核心库,运行JAVA程序(.class文件)所必须的组件。如想开发编译Java程序(.java文件)需安装JDK(Java Development Kit)。安装JDK时默认包含公共JRE。...原创 2019-02-16 22:24:30 · 136 阅读 · 0 评论 -
编程语言运行机制
1.编译型语言用户写出源代码后,经过编译器编译后产生基于特定平台的机器码,各个机器的指令有差别,因此产生的机器码只能在特定平台上运行,这样的机器码可以根据平台特性进行优化,因此效率较高。代表语言:C/C++2.解释型语言用户写出源代码后,通过解释器将代码翻译为特定平台的机器指令。因为不同平台机器指令有差别,所以不同平台的解释器不同。每次运行程序时,都会使用解释器翻译,因此性能比较差。代表...原创 2019-02-16 18:58:23 · 910 阅读 · 0 评论 -
Python 函数是传值还是传引用
传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。...转载 2018-10-12 14:27:05 · 330 阅读 · 0 评论 -
Python 变量作用域
NAME = ['Tim','mike'] #全局变量NAME1 = ['Eric','Jeson'] #全局变量NAME3 = ['Tom','jane'] #全局变量def f1(): NAME.append('Eric') #列表的append方法可改变外部全局变量的值 print('函数内NAME: %s'%NAME) NAM...转载 2018-10-11 16:39:29 · 85 阅读 · 0 评论 -
JAVA循环结构
一、while循环while(返回boolean的表达式){ 代码;}若要执行的循环代码只有一条,则可以省略花括号。二、do-while循环do{ code;}while(返回boolean的表达式)do-while循环至少执行一次。三、for循环for(初始化语句,第一次循环前执行一次;返回boolean的表达式;每次循环结束时执行的代码){ cod...原创 2019-02-22 22:22:22 · 298 阅读 · 0 评论 -
JAVA this
this引用:在非static方法和构造器中可以使用。在方法中this代表操作的是本对象,构造器中表示正在初始化的对象,用法:public Apple{ String name; public Apple(String name) { this.name = name; //如写成name=name不能达到目的,this.name代表正在初始化的对象的name field。...原创 2019-02-28 23:45:07 · 103 阅读 · 0 评论 -
JAVA对象在内存中运行机制
在方法中创建一个对象时,在方法栈中只存有对象在堆中的地址,对象本身存放在堆内存中,类中的非static成员属于对象在堆中被创建,类中的static成员属于类并在运行类时存放在永生代中。...原创 2019-02-28 22:49:15 · 160 阅读 · 0 评论 -
JAVA static修饰符
static修饰的属于类本身,没有static修饰的属于实例。创建类时,static修饰的成员存放在堆内存中的permanent代,permanent代存放类的信息,如类中的static的成员:class a{ static int n = 4; public static void main(String args[]) { a i = null; System.out.pr...原创 2019-02-28 21:41:29 · 152 阅读 · 0 评论