java问题随笔】的更多相关文章

Java基础随笔整理 为了方便阅读,特整理了相关的学习笔记 Java感想 操千曲而后晓声 Java入门 Java其他 Java虚拟机详解 语言入门百题 Java开发工具 · Eclipse Java语言基础 Java语言基础01· 语言来源 和 逻辑运算符等 Java语言基础02· 结构语句 Java面向对象 Java面向对象01 · 类和对象的定义 和 super.this Java面向对象02 · 构造方法 和 static Java面向对象03 · 代码块 和 继承 Java面向对象04 …
基本认识 1.编程思维 根据这几天的java学习,编写程序最重要的就是要有一个清晰的思路.语法上的错误可以跟随着不断的联系与学习来弥补,清晰的思维却只有自己来前期模仿,后面慢慢摸索形成一套属于自己的思维方式. 2.编程方向 程序编写方面考虑的是完成某个任务需要的东西(对象),也就是达成目标需要用什么来完成.程序主要编写思路也是围绕这些东西来写,而不是围绕完成这个目标的步骤.(这就是所谓的面向对象编程,和C语言最大的区别) 3.编程习惯 随着以后编写的程序的不断扩张,程序会越来越大,需要的对象也会…
是时候寻找一个学习JAVA的路径了 ---- JDK Enhancement Process Oracle发布了JDK增强提案与路线图进程,目的在于鼓励OpenJDK提交者贡献点子和扩展以改进OpenJDK生态圈. Earlier this year, Oracle published the JDK Enhancement Proposal and roadmap process. The purpose of this is to allow OpenJDK committers to su…
1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操作,都添加synchronized来进行同步,此种方式尽管简单,但是其性能是非常地下的,所以现在已经不怎么使用了.人们普遍会使用并发的容器,在JDK1.5之后,针对基于散列的Map,提供了新的ConcurrentHashMap,针对迭代需求的list,提供了CopyOnWriteList. 2.Co…
package homework; import java.util.Scanner; public class ArraySort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /*让用户输入数据*/ int[] num = new int[5]; Scanner s = new Scanner(System.in); for(int i=0;…
背景 狡兔三窟,在使用了近7-8年的C#后,考虑到云化的到来,还是要面向更多的语言与技术,近期决定学习scala,先从Java为跳板,最后达到学会并熟练 使用scala的目的. <核心技术>学习第三章导图…
Java的布局管理器提供了一种层面的抽象,自动将用户界面映射到所有的窗口系统.GUI组件放置在容器中,它们的位置由容器的布局管理器来管理. 布局管理器是使用布局管理器类创建的. 注:同一个对象无论添加几次,在框架中只会显示一次. 在FlowLayout和GridLayout两个布局管理器中,组件添加到容器的顺序是很重要的.它决定了组件在容器中的位置. BorderLayout…
1. 线程是程序中单独顺序的控制流,线程本身依靠程序进行运行,线程是程序中的顺序控制流,只能使用分配给程序的资源和环境. 2. 进程是执行中的程序,一个进程可以包含一个或多个线程,但至少要包含一个线程. 3. 单线程是程序中只存在一个线程,实际上主方法就是一个主线程:多线程是在一个程序中运行多个任务,其目的是更好的使用CPU资源. 4. 在Java中,线程的实现有两种:继承Thread类和实现Runnable接口.Thread类是在java.lang包中定义的,继承Thread类必须重写run(…
1. IO流的作用是读写设备上的数据,如硬盘文件.内存.键盘.网络等.根据数据走向,可分为:输入流和输出流:根据处理的数据类型,可分为:字节流和字符流.字节流可以处理所有类型的数据,如MP3.图片.视频等.在读取时,读到一个字节就返回一个字节.在Java中都是以“Stream”结尾的:字符流仅能够处理纯文本数据,如txt文本等.在读取时,读到一个或者多个字节,先查找指定的编码表,然后将查到的字符返回.在Java中对应的类都是以“Reader”或“Writer”结尾. 2. 字符.字节与编码  …
import java.io.File; /** * 遍历文件夹 */ public class ScannerFile { public static void main(String[] args) { // 1代表缩进,以便更好的显示 printFiles(new File("E:\\eclipse32_workspace\\test"),1); } public static void printFiles(File dir,int tab){ // 判断是否是文件夹 if(d…
问题:i += j只是i = i + j的简写么? 答案:非也!看下面的程序: int i = 5; long j = 8; i += j; // 可以通过编译且结果正确 i = i + j; // 无法通过编译,类型转换问题 其实,Java会将i += j转换为i = (int)(i + j)来执行. 通常,一个E1 op= E2形式的复合赋值表达式,等价于E1 = (T)((E1) + (E2)),T即为E1的类型. ps:Java如何生成一个区间的整数(如100-200)? 答: publ…
Java always passes arguments by value NOT by reference. Let me explain this through an example: public class Main{ public static void main(String[] args){ Foo f = new Foo("f"); changeReference(f); // It won't change the reference! modifyReferenc…
基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass . 方法名:所有的方法名都应该以小写字母开头.如果方法名含有若干单词,则后面的每个单词首字母大写. 源文件名:源文件名必须和类名相同.当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为…
类名.class是获得这个类所对应的Class实例.从面向对象的角度上来看,类也是对象,它们是类这个类对象,听起来有些抽象,但是在java中的实现就是所有的加载进来的类在虚拟机中都是一个java.lang.Class类的对象,而“类名.class”就是获得这个类的对象(在同一个ClassLoader中,类对象都是单例的)…
最近比较有时间啦,有时间搞下java,个人觉得学这门语言语法太多啦,不一一去学习啦,心血来潮,挂了个struct2的源代码,一入深似海啊,看得我天花缭乱,从最简单的开始吧 public static void main(String[] args) { Vector v = new Vector(4); //向Vector中添加元素 静态数组+动态扩展 //使用add方法直接添加元素 v.add("Test0"); v.add("Test1"); v.add(&qu…
类是面向对象的灵魂,一切事物都可以以类来抽象. 在java使用过程中,我们可能会经常用到一个反射的知识,只是别人都封装好的,如jdbc的加载驱动类有一句Class.for(“…jdbc…”).newInstance.当然框架也是离不开了反射,spring能这么方便也不例外. 最新项目中需要再底层库(常用的操作,汇聚的库)用到应用库(在底层库上根据需求新建的库)中的一个类,本来想直接把这个类放到底层库里,一看,需要改动的太大,于是乎就想到了反射. 至于反射,我们不得不提一个一个类那就是Class(…
for iterator做迭代循环性能最好 然后是foreach 然后是提前声明好变量的for循环 最后是每次都要计算集合size的for       package test;   import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;   /**  * 性能测试  * @author LinSir…
RMI(Remote Method Invocation)远程方法注入,用来实现远程方法调用,是实现分布式技术的一种方法.RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建了和服务对象相同的方法.其好处在于我们不必亲自写任何网络或I/O代码.客户程序在调用远程方法时就和调用本地方法一样(感觉上). RMI分为客户端和服务端. 服务端的构建步骤如下: 扩展远程接口Remote(),使其符合项目需求 实现被扩展的接口 为服务对象绑定唯一标识 利用rmic产生stub(客户辅助对象)和skel…
大家都知道Java23种设计模式,大神总结如下: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 各种设计模式的原理和要点大神zhangerqing的原创博文系列已有讲解,贴一下,遗忘了就去复习 http://blog…
1.StringTokenizer str = new StringTokenizer("字符串"); str.countTokns();   //可得出字符串非连续的个数(可用于单词数的计算) String不可直接用下标法访问字符,用str.charAt(下标): str.substring(起始下标,末尾下标),该方法表示截取起始(包括)到末尾(不包括)下标间的相应字符: (1 + 2 + "3")的值为 33 : ("1" + 2 + 3)…
1.^异或  逻辑运算符  两边相同为false  不同为ture 2.键盘录入 package com.huawei; /** * 键盘录入 * @author Eric * */ import java.util.Scanner; public class Demo1 { public static void main(String[] args) { System.out.println("请输入一个整数"); Scanner sc=new Scanner(System.in);…
1.java变量在使用之前必须初始化 int  a; a=10 ; int b; 没有初始化,也没有使用也不报错 2.强制类型转换  int a=8: byte b=6; b=(byte)(a+b); 3.小题一个 4.long和float哪个取值范围大 5.char可以存储一个汉字吗? 6.++a  a++ 7.小题…
1.PrtSc键是截屏键   打开画图软件  ctrl+v就可以复制到 2.win7以上可以  在当前目录下shift+右键 3.junit和javaweb应用的main函数在哪里? java程序跑起来,一般是通过主类的main方法启动的.对于Web应用,是tomcat中按照Servlet等规范实现,我们的应用中写规范定义好的API逻辑,tomcat按请求去调用这些Servlet,从而启动Web应用.tomcat的主类是BootStrap类,也是以此类的main方法作为入口启动的,如果要验证你可…
工具类:所有的方法都是静态的,如果一个类中所有的方法都是静态的,需要再多做一步,私有构造方法,不让其他类创建本类对象. 生成文档: java.lang 包不用导入 常见代码块的应用    * a:局部代码块         * 在方法中出现:限定变量生命周期,及早释放,提高内存利用率    * b:构造代码块 (初始化块)        * 在类中方法外出现:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行    * c:静态代码块         * 在类中方法…
最近发生了一些C#程序运行时的一些问题,发现是GC导致的问题,然后稍微研究了一下GC,因为知道Java的GC要比.NET稍微复杂一点,所以我觉得要是能弄懂Java的GC的原理,对.NET的GC的理解也能更深入一些.所以把研究到的整理做了个笔记,以免以后忘记. 什么样的对象会被GC判定要回收的对象:      主流JVM采用可达性分析算法来判断一个对象是否需要回收.基本思想是通过称为“GC Roots”的对象作为起始点,从这些节点向下搜索,搜索走过的路径称为引用链,当一个对象不与任何引用链相连的时…
JAVA中提供了现成操纵数据的集合,使得我们在开发中基本不用自己动手实现复杂的数据结构,来保存和操纵数据. 所以当我们有了基本的数据结构知识,会合理利用JAVA提供的集合就好啦. JDK1.8;(仅列举常见的) 一: Iterable接口:三个方法:         Iterator<T> iterator(); default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); fo…
做题时经常遇到输入的问题,很麻烦 写一点点自己对于输入的随笔,以备后查 这里都以整数为例,其他类型的话换成相应方法就行了 1.知道一共多少行,每一行只有一个整数 这是比较简单的输入,可以用Scanner或者BufferedReader读,需要的话再进行强制转换 Scanner sc = new Scanner(System.in); for(int i=0;i<n;i++){ int x = sc.nextInt(); } BufferedReader sc = new BufferedRead…
一. 键盘录入数据概述 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性. 键盘录入数据的步骤: A:导包(位置放到class定义的上面) import java.util.Scanner; B:创建对象 Scanner sc = new Scanner(System.in); C:接收数据 int x = sc.nextInt(); ____________________________________________…
先说重点: 对象在堆区 方法在栈区 变量在方法区,常量池在方法区 为什么要了解Java 虚拟机 ? 这个问题一直困惑了我很长一段时间,其实在我们开发的过程中,即使我们不了解JVM也能正常的开发,但是当遇到如何优化代码,如何调优程序性能,当我们碰到内存泄漏的时候如何去解决,如何正确使用GC即垃圾回收等问题时,我们想有更好的解决办法,我们就必须去了解Java虚拟机,工欲善其事,必先利其器.Java虚拟机是程序运行最基础的存在. 了解Java JVM 想了解Java虚拟机必须要先了解Java内存分布,…
1.一些简单的dos命令: –       d: 回车     盘符切换 –       dir(directory):列出当前目录下的文件以及文件夹 –       del:删除文件 –       md:创建文件夹 –       rd:删除文件夹 –       cd (change directory)改变指定目录(进入指定目录) 进入      cd 目录:cd 多级目录 回退      cd..      :cd\ –       cls : (clear screen)清屏 –  …