首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java新手入门必须掌握的30个基本概念

Java与其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码。...(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的。...10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。   ...(toString 方法是一个很重要的方法)    19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。   ...Java中的一个重要接口:Cloneable    26.接口和回调。编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。

35920

【Java入门提高篇】Day5 Java中的回调(二)

Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制。...在其他语言中,可以提供一个函数名,然后定时器周期性的调用它,但Java使用的是面向对象编程的思想,将某个类的对象传递给定时器,然后定时器再调用这个对象的方法,由于对象能携带的信息比函数要多,所以这样也会更加灵活...这里仅仅为了说明回调,仅介绍需要用到的Timer的方法,不会对Timer做过详细的介绍。   ...每秒输出一次,也就是每秒会调用一次TimePrinter的actionPerformed方法,这就是最典型的回调(感觉上一篇的栗子还是讲的有点复杂了)。   ...其实可以这样来理解回调,就是我把某个方法的处理权交给你,你可以在合适的时机使用这个方法,那你如何知道该使用哪个方法?

56690
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android_其他语言交互篇——Js、C#、C、C++

    java对象挂载到webview的当前页面,挂载的名字就是第二个String类型的参数,然后java类的方法就可以被js调用了。...addJavascriptInterface 的源码注释 有朋友在思考中纠结到,我在js中调用了android的方法,但是这个方法是异步操作,该怎么回调js呢?...其实兄台你想多了,不同的语言,哪来的回调呢,我们只能说在这样的情境下如何实现回调的效果:其实很简单吖,在android的异步回调中,使用loadUrl调用js的相关方法就行了嘛,哈哈...... ③、题外话...编写unity代码 是不是挺简单的,但是一定要注意: 1、打包jar的时候,只要.java文件,不能有任何其他的,不然各种报错你也查不出来; 2、异步操作实现回调的话,思路也是跟js回调一样的,即在android...和其他语言的通信(说明JNI能用于很多语言与Java进行交互,但平时我们提起JNI,主要指的是C和C++);话说年初的时候换工作面试,有个面试官问我会不会NDK开发,我虽然没在项目中用过,但是流程给他讲的明明白白

    2.3K20

    Java初学者需掌握的30个概念

    10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。      ...(toString 方法是一个很重要的方法)       19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。      ...Java中的一个重要接口:Cloneable       26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。      ...B.对于同一个包中的其他类来说,内部类能够隐藏起来。       C.匿名内部类可以很方便的定义回调。       D.使用内部类可以非常方便的编写事件驱动程序。      ...29.代理类(proxy):       A.指定接口要求所有代码       B.object类定义的所有的方法(toString equals)       30.数据类型:Java是强调类型的语言

    613100

    为什么 waitnotifynotifyAll 在 Object 类定义而不是 Thread 类?

    为什么等待和通知需要从同步块或方法中调用, 以及 Java 中的 wait,sleep 和 yield 方法之间的差异,如果你还没有读过相关知识,一定要看看。...以下观点我认为是有道理的: 1) wait 和 notify 不仅仅是普通方法或同步工具,更重要的是它们是 Java 中两个线程之间的通信机制。...对语言设计者而言, 如果不能通过 Java 关键字(例如 synchronized)实现通信此机制,同时又要确保这个机制对每个对象可用, 那么 Object 类则是的合理的声明位置。...但是,我们可以指定监视器(这是我们称之为等待的对象)。 这是一个很好的设计,因为如果我们可以让任何其他线程在所需的监视器上等待,这将导致“入侵”,影响线程执行顺序,导致在设计并发程序时会遇到困难。...请记住,在 Java 中,所有在另一个线程的执行中造成入侵的操作都被弃用了(例如 Thread.stop 方法)。

    1.5K20

    【新手必读】Java初学者,你遇到的问题都在这了

    如果你不确定类或方法的用法,请先查阅API而不是发贴求助。 当你熟悉Java之后,你可以考虑换一个IDE。很多人推荐JCreator,实际上JCreator的功能还是很弱的。...注意包没有嵌套或包含关系,A包和A.B包对Java命令来说是并列的两个包。 6、我没有声明任何package会怎么样? 答:你的类被认为放在默认包中。这时全名和短名是一致的。...7、在一个类中怎么使用其他类? 答:如果你使用java.lang包中的类,不用做任何事。...如果你使用其他包中的类,使用import package1.class1; 或 import package2.*; 这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。...8、我用了package的时候显示"NoClassDefFoundError",但是我把所有package去掉的时候能正常运行。 答:将你的java文件按包名存放。

    87950

    打破国外垄断,开发中国人自己的编程语言(1):编写解析表达式的计算器

    在设计编程语言时,需要进行横向比较,也就是需要参考其他的编程语言,因为任何新技术都不可能100%完全凭空产生,这些新技术都会或多或少地留下其他同类技术的影子,编程语言也不例外。...如何用程序进行词法和语法分析 尽管已经了解了Antlr4的基本使用方法,但到现在为止,还没有用Java编写过一行代码呢?现在我就来演示如何用Java调用上一节生成的词法分析器和语法分析器。...那么这些回调方法放在哪里呢?这就要说到前面创建的MyHelloVisitor类。...如果文法文件很大时,会生成相当多的回调方法,例如,Ori语言的文法就生成了数百个回调方法,这些回调方法并不一定都用到,在这种情况下,并不需要实现所有的回调方法,所以Antlr4在生成回调接口文件的同时,...还生成了一个默认实现类,如本例的HelloBaseVisitor,默认实现类已经默认实现了所有的回调方法,我们的Visitor类只需要从该类继承,就只需要实现必要的回调方法即可。

    2.4K40

    Java中的堆栈和堆内存

    大家好,我是小面。今天将给大家介绍一下Java中的堆栈和堆内存。 Java数据类型在执行期间存储在两种不同形式的内存中:堆栈和堆。它们通常由运行Java虚拟机(JVM)的底层平台维护。...因此,对象实例化可以是用户定义的类、JDK或其他库类。简而言之,使用新关键字创建的任何对象都存储在堆内存中。JVM运行的所有线程都可以访问堆内存中的对象。访问管理是复杂的,并且使用非常复杂的算法。...Java堆字符串池 非常有趣的是,尽管它是一个类,但对于java.lang.String,从这个类实例化的任何对象都有不同的处理方式。JVM创建者发现,这是Java编程中使用最多的类。...JVM将创建的任何字符串对象存储在StringPool中。与堆中创建的其他对象相比,这提高了性能。...关于Java堆栈和堆内存的最后思考 堆栈和堆是Java程序在代码执行期间使用的两个区域。除了这两个之外,还有其他内存区域,例如方法区域、寄存器、本地区域等等。它们在Java应用程序中都有其特定的用途。

    1.2K10

    一期Go群问答-并发控制-数据竞争-错误与异常

    并发控制 waitGroup.done()不是必须写在main方法中吗? 为什么我的协程没有成功等待?...熊:如果用了wait group,请求就直接卡住了,如果只有一个goroutine那和直接调用函数没有区别其实。你是想请求立刻返回,然后其他数据稍后返回的话,用中间件比如kafka。...熊:会影响的,估计map中的hmap会影响到,有几率会在运行时报错 机器马:你在用之前没法确定会用哪个key啊,除非你再用结构体封装一层 熊:我想到两个办法,1是用这个,还有一个是弄个channel,如果数据用途不一样...没必要把java里面那一套带进Go,这两门语言的哲学本来就不一样。 宋跑跑:recover 国玮:exception !...不需要像java那样抛出业务异常,有个专门的对controller层处理的异常处理类。但是这句话里面,要注意,是错误,不是异常!要弄清楚它们的概念呀。

    41730

    一期每日一GO群分享-flag、viper、协程池、异常处理

    并发控制 waitGroup.done()不是必须写在main方法中吗? 为什么我的协程没有成功等待?...熊:如果用了wait group,请求就直接卡住了,如果只有一个goroutine那和直接调用函数没有区别其实。你是想请求立刻返回,然后其他数据稍后返回的话,用中间件比如kafka。...熊:会影响的,估计map中的hmap会影响到,有几率会在运行时报错 机器马:你在用之前没法确定会用哪个key啊,除非你再用结构体封装一层 熊:我想到两个办法,1是用这个,还有一个是弄个channel,如果数据用途不一样...没必要把java里面那一套带进Go,这两门语言的哲学本来就不一样。 宋跑跑:recover 国玮:exception !...不需要像java那样抛出业务异常,有个专门的对controller层处理的异常处理类。但是这句话里面,要注意,是错误,不是异常!要弄清楚它们的概念呀。

    36920

    Java程序员学习Go指南(二)

    AnimalCategory结构体中有7个string类型的字段,下边有个名叫String的方法,这个方法其实就是java类中的toString方法。...其实这个结构体就是java中的类,结构体中有属性,有方法。...,并把它赋给了变量category,通过调用fmt.Printf方法调用了category实例内的String方法,⽽⽆需 显式地调⽤它的String⽅法。...在java中只有父类才会做到方法的覆盖,但是在Go中,嵌⼊字段的⽅法集合会被⽆条件地合并进被嵌⼊类型的⽅法集合中。...临时结果 在我们把临时结果值赋给任何变量或常量之前,即使能拿到它的内存地址也是没有任何意义的。所以也是不可寻址的。 我们可以把各种对值字⾯量施加的表达式的求值结果都看做是 临时结果。

    61310

    android基础部分再学习--AIDL

    AIDL建立一个邻接的service需要遵循下面的步骤 1.建立.aidl文件 这个文件使用方法签名定义了语言接口 2.实现这个接口 Android SDk工具基于你的.aidl文件使用java语言生成一个接口...()方法返回你的Stub实现类 警告:在你第一次发布AIDL之后的其中任何的改变必须保持向后兼容来避免破坏其他应用程序使用你的service 也就是说,因为你的.aidl文件必须被复制到其他应用程序中来让他们访问你...1.建立.aidl文件 AIDL使用一个简单的语法让你声明一个带有一个或者多个带有参数和返回值方法的接口 参数和返回值可以是任何类型,甚至是AIDL生成的接口 你必须使用java语言构建.aidl文件...当定义你的service接口的时候,注意: 方法可以接收0或多个参数,并且有返回值或者返回void 所有非基本数据类型要求要求一个定向的tag来指定数据是去往哪个方向的 无论是输入、输出,还是输入输出(...()回调函数接收service中onBind()方法返回的mBinder实例 客户端必须可以访问接口类,所以如果客户端和服务端在不同的应用中,那么客户端所在的应用必须有一份.aidl文件的副本在其src

    54720

    Java编程思想第五版精粹(五)-初始化和清理(上)

    那么问题随之而来了 2.1 怎么命名构造器 存在两个问题: 任何命名都可能与类中其他已有元素的名称冲突 调用构造器是编译器的职责,它必须知道该调用哪个方法 C++ 的解决方案看起来是最简单且最符合逻辑的...,所以 Java 使用了同样的方式: 构造器名称与类名相同。...都是构造器,所以肯定名称相同——就是类名。因此,方法重载就很必要了:允许方法具有相同名称,但不同类型的参数。 3.3 区分方法重载 方法名相同,Java怎么知道你调用的是哪个?...你可以像对待其他引用一样对待这个引用。 如果你在一个类的方法里调用其他该类中的方法,不要使用 this,直接调用即可,this 自动地应用于其他方法上了。...这其实就是static方法的主要目的,static方法看起来就像全局方法,但是 Java 不允许全局方法,一个类中的静态方法可以被其他的静态方法和静态属性访问。

    32121

    Java编程思想第五版精粹(五)-初始化和清理(上)

    那么问题随之而来了 2.1 怎么命名构造器 存在两个问题: 任何命名都可能与类中其他已有元素的名称冲突 调用构造器是编译器的职责,它必须知道该调用哪个方法 C++ 的解决方案看起来是最简单且最符合逻辑的...,所以 Java 使用了同样的方式: 构造器名称与类名相同。...都是构造器,所以肯定名称相同——就是类名。因此,方法重载就很必要了:允许方法具有相同名称,但不同类型的参数。 3.3 区分方法重载 方法名相同,Java怎么知道你调用的是哪个?...你可以像对待其他引用一样对待这个引用。 如果你在一个类的方法里调用其他该类中的方法,不要使用 this,直接调用即可,this 自动地应用于其他方法上了。...这其实就是static方法的主要目的,static方法看起来就像全局方法,但是 Java 不允许全局方法,一个类中的静态方法可以被其他的静态方法和静态属性访问。

    47700

    分析Guava并发工具类Futures

    前言 为什么要分析这个东西呢,其实guava从开始开始工作就用了,带给我们开发的效率提升不是一点半点,java很多工具类也说借鉴的guava,首先今天分析的Futures其实是因为今天线上发现一个百思不得其解的问题...轻量级就是执行回调方法FutureCallback时,会不会耗时很久,会不会占用线程池任务时间过长。 基于以上原因,就可以来讨论开发时怎么根据业务场景使用哪个方法。...现在就可以说说为什么我的回调很慢了。...1.我使用了Futures.addCallback(futureTask,callback,executorService);方法,同时传入的executorService对象是和futureTask公用一个...总结 Futures.addCallback(futureTask, callback); 1.回调函数执行的方法耗时不长 (如果耗时很长,就会阻塞其他任务,导致其他任务等待时间过长,不着急的处理流程可以放到回调函数中进行处理

    99941

    屎上最全的BAT面试,吐血整理,网友回复:那是真的厉害

    网上的都是按照公司划分的,想找具体某一方面的知识点有点不好找,我这里就根据知识点分门别类的整理了一下,想看哪一块可以快速找到,希望可以帮助大家,祝大家求职顺利。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。...Activity的四种启动模式对比 Activity状态保存于恢复 fragment各种情况下的生命周期 Fragment状态保存startActivityForResult是哪个类的方法,在什么情况下使用...内部是如何实现跨平台的? Dart语言有研究贵吗? 快应用了解吗?跟其她方式相比有什么优缺点? 说说你用过的混合开发技术有哪些?各有什么优缺点? Python会吗? 会不会PHP?

    1.2K30

    C# 中的命名空间与Java和Python中的导入

    在 C# 中,似乎没有这样的命名空间约定,或者我遗漏了什么?那么,我不知道要查找哪个目录和文件(在弄清楚该类来自哪个命名空间之后)。...澄清编辑:我知道 Python 和/或 Java 允许使用通配符导入,但这些语言中的“文化”不赞同它们(至少在 Python 中是这样,我不确定 Java 中是否是这样)。...乍一看没有“直接”的方法来知道您的类来自哪里,但是,正如您所说,您可以在 IDE 中跳转到它。但以这种方式声明类只是最短的方式来做到这一点。...编辑:为了不与本主题中的其他答案相矛盾并造成混淆:我说程序集名称不对应目录名称的意思是它实际上并没有被强制执行。...答案 5:我不知道其他项目的情况,但我敢肯定,在我参与的每一个 .NET 项目中,我们都使用了这个约定,即命名空间始终对应于文件夹名称(除了最外层的命名空间对应于该命名空间所属的程序集)。

    7110

    最全的BAT大厂面试题整理

    网上的都是按照公司划分的,想找具体某一方面的知识点有点不好找,我这里就根据知识点分门别类的整理了一下,想看哪一块可以快速找到,希望可以帮助大家,祝大家求职顺利。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。...Activity的四种启动模式对比 Activity状态保存于恢复 fragment各种情况下的生命周期 Fragment状态保存startActivityForResult是哪个类的方法,在什么情况下使用...内部是如何实现跨平台的? Dart语言有研究贵吗? 快应用了解吗?跟其她方式相比有什么优缺点? 说说你用过的混合开发技术有哪些?各有什么优缺点? Python会吗? 会不会PHP?

    1.1K20

    《Java性能权威指南》笔记----JIT编译器

    Java的设计结合了脚本语言的平台独立性和编译型语言的本地性能。 热点编译 Java两种执行方式:编译执行和解释执行。 为什么Java执行代码时,不立即编译代码?   (1)编译代码的成本较高。...Java7开启分层编译时,代码缓存通常就不够用了,常常需要扩大;使用client编译器的大型程序也需要增加代码缓存的大小。...Java语言的默认的实例方法是虚方法,虚方法需要在运行时进行方法接受者的多态选择(详细知识见《深入理解JVM》第8章),所以在编译期做内联的时候根本无法确定应该使用哪个方法版本。...当程序实际使用了虚方法的多态特性时,才不能使用内联,而不是在虚方法拥有多个接收者版本时就不能使用内联。     ...方法逃逸:当一个对象在方法中被定义,可能被其他外部方法引用,例如作为调用参数传递到其他方法中去;     线程逃逸:甚至可能被外部线程访问到,比如赋值给类变量或可以在其他线程中访问到的实例变量。

    1.2K10

    Java虚拟机的面试准备(一)

    本地方法栈 Native关键字: jvm调优入门 JVM的位置在哪 高级语言-》汇编语言-》机器指令 下面就是学习JVM这个框里面的东西,从里面有什么东西开始学 JVM 包括哪几部分 我们一般说的...,当前方法执行完成之后,返回到主函数的位置,也就是执行完成之后,返回后在主函数的哪个地方开始执行,不能从头开始吧。...为什么要有这个程序计数器 程序计数器的值是谁修改的 我们的class文件,被类加载器加载到运行时数据区里面的方法区,这个方法区内容会被 执行引擎进行执行,执行引擎执行到哪步,就会把地址存到程序计数器里面...,使用了Native修饰这个方法,或者底层使用了这个关键字修饰的方法,那么Java虚拟机进行加载的时候,就会把这个方法加载到这个本地方法栈里面。...就是其他语言的方法 意思是只要利用java操作其他语言,或者硬件,比如打印机,那么就需要这个本地方法栈,就需要这个关键字native jvm调优入门 我们先写一个Java代码,让他内存溢出

    25230
    领券