> 首页 > 文章 > 八卦 > java基础知识点

java基础知识点

来源:网络 作者:网友上传 时间:06-08 手机版

一、JDK常用的包java.lang: 这个是系统的基础类,比如String、Math、Integer、System和Thread, 提供常用功能。java.io: 这里面是所有输入输出有关的类,比如文件操作等java.net: 这里面是与网络有关的类,比如URL,URLConnection等。java.util : 这个是系统辅助类,特别是集合类Collection,List,Map等。java.sql: 这个是数据库操作的类,Connection, Statememt,ResultSet等二、Get和Post的区别1.get是从服务器上获取数据,post是向服务器传送数据,2.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。3.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。4.在进行文件上传时只能使用post而不能是get。三、Java多态的具体体现面向对象编程有四个特征:抽象,封装,继承,多态。多态有四种体现形式:接口和接口的继承。

类和类的继承。

重载。

重写。

其中重载和重写为核心。

重载:重载发生在同一个类中,在该类中如果存在多个同名方

法,但是方法的参数类型和个数不一样,那么说明该方法被重

载了。

重写:重写发生在子类继承父类的关系中,父类中的方法被子类继承,方法名,返回值类型,参数完全一样,但是方法体不一样,那么说明父类中的该方法被子类重写了。四、StringBuffer StringBuilder String 区别String 字符串常量 不可变 使用字符串拼接时是不同的2个空间StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加1.StringBuilder执行效率高于StringBuffer高于String.2.String是一个常量,是不可变的,所以对于每一次+=赋值都会创建一个新的对象, StringBuffer和StringBuilder都是可变的,当进行字符串拼接时采用append方 法,在原来的基础上进行追加,所以性能比String要高,又因为StringBuffer 是 线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于 StringBuffer.3.对于大数据量的字符串的拼接,采用StringBuffer,StringBuilder.五、Hashtable与HashMap的区别HashMap不是线程安全的,HashTable是线程安全。HashMap允许空(null)的键和值(key),HashTable则不允许。HashMap性能优于Hashtable。Map1.Map是一个以键值对存储的接口。Map下有两个具体的实现,分别是HashMap和HashTable.2.HashMap是线程非安全的,HashTable是线程安全的,所以HashMap的效率高于HashTable.3.HashMap允许键或值为空,而HashTable不允许键或值为空.六、九大隐式对象输入/输出对象: request response out作用域通信对象: session application pageContextServlet 对象: page config错误对象: exception七、Forword(请求转发)与Redirect(重定向)1、从数据共享上Forword是一个请求的延续,可以共享request的数据Redirect开启一个新的请求,不可以共享request的数据2、从地址栏Forword转发地址栏不发生变化Redirect转发地址栏发生变化八、JQurey总结jquery是一个轻量级的js框架,具有跨浏览器的特性,兼容性好,并且封装了很多工具,方便使用。常用的有: 选择器 ,dom操作 ,ajax(ajax不能跨域) ,特效,工具类九、XML和Json的特点Xml特点:1、有且只有一个根节点;2、数据传输的载体3、所有的标签都需要自定义4、是纯文本文件Json(JavaScript Object Notation)特点:json分为两种格式:json对象(就是在{}中存储键值对,键和值之间用冒号分隔,键 值 对之间用逗号分隔);json数组(就是[]中存储多个json对象,json对象之间用逗号分隔)(两者间可以进行相互嵌套)数据传输的载体之一区别:传输同样格式的数据,xml需要使用更多的字符进行描述,流行的是基于json的数据传输。xml的层次结构比json更清晰。共同点:xml和json都是数据传输的载体,并且具有跨平台跨语言的特性。十、request.getSession()、reqeust.getSession(false)和 request.getSession(true)getSession()/getSession(true):当session存在时返回该session,否则新建一个 session并返回该对象getSession(false):当session存在时返回该session,否则返回null十一、Page和PageContext的区别Page是servlet对象;使用this关键字,它的作用范围是在同一页面。PageContext是作用域通信对象;通常使用setAttribute()和getAttribute()来设置和获取存放对象的值。十二、Ajax总结AJAX 全称: 异步JavaScript及 XML(Asynchronous JavaScript And XML)Ajax的核心是JavaScript对象XmlHttpRequest(XHR)。Ajax的优点:提高用户体验度(UE)提高应用程序的性能进行局部刷新AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。2. 通过 AJAX,我们的 JavaScript 可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,我们的 JavaScript 可在不重载页面的情况与Web服务器交换数据,即可局部刷新。3. AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面,减轻服务器的负担,提升站点的性能。AJAX 可使因特网应用程序更小、更快,更友好,用户体验(UE)好。5. Ajax是基于标准化并被广泛支持的技术,并且不需要插件和下载小程序十三、JSP9大隐视对象中四个作用域的大小与作用范围四个作用域从大到小:appliaction>session>request>pageapplication:全局作用范围,整个应用程序共享.生命周期为:应用程序启动到停止。session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记 住这个会话状态。request:请求作用域,就是客户端的一次请求。page:一个JSP页面。以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward)。十四、List,Set,Collection,Collections1.List和Set都是接口,他们都继承于接口Collection,List是一个有序的可重复的集合,而Set的无序的不可重复的集合。Collection是集合的顶层接口,Collections是一个封装了众多关于集合操作的静态方法的工具类,因为构造方法是私有的,所以不能实例化。2.List接口实现类有ArrayList,LinkedList,Vector。ArrayList和Vector是基于数组实现的,所以查询的时候速度快,而在进行增加和删除的时候速度较慢LinkedList是基于链式存储结构,所以在进行查询的时候速度较慢但在进行增加和删除的时候速度较快。又因为Vector是线程安全的,所以他和ArrayList相比而言,查询效率要低。十五、java的基本数据类型数据类型 大小byte(字节) 1(8位)shot(短整型) 2(16位)int(整型) 4(32位)long(长整型) 8(32位)float(浮点型) 4(32位)double(双精度) 8(64位)char(字符型) 2(16位)boolean(布尔型) 1位附加:String是基本数据类型吗?(String不是基本数据类型)String的长度是多少,有限制?(长度受内存大小的影响)十六、冒泡排序public class Sort {public static void sort() {Scanner input = new Scanner(System.in);int sort[] = new int[10];int temp;System.out.println("请输入10个排序的数据:");for (int i = 0; i < sort.length; i++) {sort[i] = input.nextInt();}for (int i = 0; i < sort.length - 1; i++) {for (int j = 0; j < sort.length - i - 1; j++) {if (sort[j] < sort[j + 1]) {temp = sort[j];sort[j] = sort[j + 1];sort[j + 1] = temp;}}}System.out.println("排列后的顺序为:");for(int i=0;i

十七、二分查找法public class BinarySearch { /** * 二分查找算法 * * @param srcArray 有序数组 * @param key 查找元素 * @return key的数组下标,没找到返回-1 */ public static void main(String[] args) { int srcArray[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101}; System.out.println(binSearch(srcArray, 0, srcArray.length - 1, 81)); } // 二分查找递归实现 public static int binSearch(int srcArray[], int start, int end, int key) { int mid = (end - start) / 2 + start; if (srcArray[mid] == key) { return mid; } if (start >= end) { return -1; } else if (key > srcArray[mid]) { return binSearch(srcArray, mid + 1, end, key); } else if (key < srcArray[mid]) { return binSearch(srcArray, start, mid - 1, key); } return -1; } // 二分查找普通循环实现 public static int binSearch(int srcArray[], int key) { int mid = srcArray.length / 2; if (key == srcArray[mid]) { return mid; } int start = 0; int end = srcArray.length - 1; while (start <= end) { mid = (end - start) / 2 + start; if (key < srcArray[mid]) { end = mid - 1; } else if (key > srcArray[mid]) { start = mid + 1; } else { return mid; } } return -1; } }

十八、时间类型转换public class DateFormat {public static void fun() {SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");String newDate;try {newDate = sdf.format(new SimpleDateFormat("yyyyMMdd").parse("20121115"));System.out.println(newDate);} catch (ParseException e) {e.printStackTrace();}}public static void main(String args[]) {fun();}}

十九、阶乘public class Multiply {public static int multiply(int num) {if (num < 0) {System.out.println("请输入大于0的数!");return -1;} else if (num == 0 || num == 1) {return 1;} else {return multiply(num - 1) * num;}}public static void main(String[] args) {System.out.println(multiply(10));}}

二十、UE和UI的区别UE 是用户体验度UI 界面原型(用户界面)(相当于买房时用的模型)设计UI的作用:1、帮助程序员工作(界面已由美工设计完成)2、提前让用户对项目有个宏观的了解,知道效果是什么样子。二十一、osi七层模型第一层:物理层第二层:数据链路层第三层:网络层第四层:传输层第五层:会话层第六层:表示层第七层:应用层二十二、线程和进程的区别1.线程(Thread)与进程(Process)进程定义的是应用程序与应用程序之间的边界,通常来说一个进程就代表一个与之对应的应用程序。不同的进程之间不能共享代码和数据空间,而同一进程的不同线程可以共享代码和数据空间。2.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。3.实现线程的两种方式:继承Thread类,实现Runable接口二十三、jvm的内存结构java虚拟机的内存结构分为堆(heap)和栈(stack),堆里面存放是对象实例也就是new出来的对象。栈里面存放的是基本数据类型以及引用数据类型的地址。对于所谓的常量是存储在方法区的常量池里面。二十四、内存泄露和内存溢出内存泄露 (memory leak),是指应用程序在申请内存后,无法释放已经申请的内存空间.一次内存泄露危害可以忽略,但如果任其发展最终会导致内存溢出(out of memory).如读取文件后流要进行及时的关闭以及对数据库连接的释放。内存溢出(out of memory)是指应用程序在申请内存时,没有足够的内存空间供其使用。如我们在项目中对于大批量数据的导入,采用分段批量提交的方式。二十五、单例单例就是该类只能返回一个实例。单例所具备的特点:1.私有化的构造函数2.私有的静态的全局变量3.公有的静态的方法单例分为懒汉式、饿汉式和双层锁式饿汉式:public class Singleton1 {private Singleton1() {};private static Singleton1 single = new Singleton1();public static Singleton1 getInstance() {return single;}}

懒汉式:public class Singleton2 {private Singleton2() {}private static Singleton2 single=null;public tatic Singleton2 getInstance() {if (single == null) {single = new Singleton2();}return single;}}

线程安全:public class Singleton3 {private Singleton3() {}private static Singleton3 single ;public static Singleton3 getInstance() {if(null == single){synchronized(single ){if(null == single){single = new Singleton3();}}}return single;}}

参考:通过双重判断来保证单列设计模式在多线程中的安全性,并且它在性能方面提高了很多。synchronized在方法上加锁 (同步锁)synchronized在代码块内部加锁 (同步代码块)synchronized(同步锁)使用synchronized如何解决线程安全的问题?1.synchronized在方法上加锁2.synchronized在代码块内部加锁1.懒汉 2.饿汉 3.双重判断二十六、解析xml文件的几种技术1、 解析xml的几种技术1.dom4j2.sax3.jaxb4.jdom5.dom1.dom4jdom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。2.saxSAX(simple API for XML)是一种XML解析的替代方法。相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。而且相比于DOM,SAX可以在解析文档的任意时刻停止解析,但任何事物都有其相反的一面,对于SAX来说就是操作复杂。3.jaxbJAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。2、dom4j 与 sax 之间的对比:【注:必须掌握!】dom4j不适合大文件的解析,因为它是一下子将文件加载到内存中,所以有可能出现内存溢出,sax是基于事件来对xml进行解析的,所以他可以解析大文件的xml也正是因为如此,所以dom4j可以对xml进行灵活的增删改查和导航,而sax没有这么强的灵活性所以sax经常是用来解析大型xml文件,而要对xml文件进行一些灵活(crud)操作就用dom4j二十七、项目的生命周期1.需求分析2.概要设计3.详细设计(用例图,流程图,类图)4.数据库设计(powerdesigner)5.代码开发(编写)6.单元测试(junit 白盒测试)(开发人员)svn版本管理工具(提交,更新代码,文档)7.集成测试 (黑盒测试,loadrunner(编写测试脚本)(高级测试))8.上线试运行 (用户自己体验)9.压力测试(loadrunner)10.正式上线11.维护二十八、OSCache的判断Object obj = CacheManager.getInstance().getObj(“oaBrandList”);//从缓存中取数据if (null == obj) {obj = brandDao.getBrandList();//如果为空再从数据库获取数据//获取之后放入缓存中CacheManager.getInstance().putObj(“oaBrandList”, obj);}return (List)obj;二十九、经常访问的技术网站1.csdn(详细步骤的描述)2.iteye(详细步骤的描述)3.oschina(开源中国获取java开源方面的信息技术)4.java开源大全 www.open-open.com(获取java开源方面的信息技术)5.infoq(对java,php,.net等这些语言的一些最新消息的报道)三十、项目团队中交流的工具飞秋(局域网) qq(局域网,外网)RTX(局域网,外网) 邮箱 (局域网,外网)三十一、平时浏览的书籍实战经验:*** in action(实战)*** 深入浅出*** 入门指南思想基础:大话设计模式 重构三十二、java Exception体系结构java 异常是程序运行过程中出现的错误。Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中定义了许多异常类,分为两大类,错误Error和异常Exception。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常(非runtimeException),也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。1、Error与ExceptionError是程序无法处理的错误,比如OutOfMemoryError、ThreadDeath等。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。2、运行时异常和非运行时异常运行时异常: 都是RuntimeException类及其子类异常: IndexOutOfBoundsException 索引越界异常ArithmeticException:数学计算异常NullPointerException:空指针异常ArrayOutOfBoundsException:数组索引越界异常ClassNotFoundException:类文件未找到异常ClassCastException:造型异常(类型转换异常)这些异常是不检查异常(Unchecked Exception),程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的。非运行时异常:是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如:IOException、文件读写异常FileNotFoundException:文件未找到异常EOFException:读写文件尾异常MalformedURLException:URL格式错误异常SocketException:Socket异常SQLException:SQL数据库异常三十三、session和cookie的区别session是存储在服务器端,cookie是存储在客户端的,所以安全来讲session的安全性要比cookie高,然后我们获取session里的信息是通过存放在会话cookie里的sessionid获取的。又由于session是存放在服务器的内存中,所以session里的东西不断增加会造成服务器的负担,所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里,然后cookie确切的说分为两大类分为会话cookie和持久化cookie,会话cookie确切的说是,存放在客户端浏览器的内存中,所以说他的生命周期和浏览器是一致的,浏览器关了会话cookie也就消失了,然而持久化cookie是存放在客户端硬盘中,而持久化cookie的生命周期就是我们在设置cookie时候设置的那个保存时间,然后我们考虑一问题当浏览器关闭时session会不会丢失,从上面叙述分析session的信息是通过会话cookie的sessionid获取的,当浏览器关闭的时候会话cookie消失所以我们的sessionid也就消失了,但是session的信息还存在服务器端,这时我们只是查不到所谓的session但它并不是不存在。那么,session在什么情况下丢失,就是在服务器关闭的时候,或者是session过期(默认时间是30分钟),再或者调用了invalidate()的或者是我们想要session中的某一条数据消失调用session.removeAttribute()方法,然后session在什么时候被创建呢,确切的说是通过调用getsession()来创建,这就是session与cookie的区别.访问HTML页面是不会创建session,但是访问index.JSP时会创建session(JSP实际上是一个Servlet, Servlet中有getSession方法)三十四、字节流与字符流的区别stream结尾都是字节流,reader和writer结尾都是字符流两者的区别就是读写的时候一个是按字节读写,一个是按字符。实际使用通常差不多。在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。只是读写文件,和文件内容无关的,一般选择字节流。三十五、final,finally,finalize 三者区别Final是一个修饰符:当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值当final修饰的变量为静态变量(即由static修饰)时,必须在声明这个变 量的时候给它赋值当final修饰方法时,该方法不能被重写当final修饰类时,该类不能被继承Final不能修饰抽象类,因为抽象类中会有需要子类实现的抽 象方法,(抽 象类中可以有抽象方法,也可以有普通方法,当一个抽象类中没有抽象方 法时,这个抽象类也就没有了它存在的必要)Final不能修饰接口,因为接口中有需要其实现类来实现的方法Finally:Finally只能与try/catch语句结合使用,finally语句块中的语句一定会执行, 并且会在return,continue,break关键字之前执行finalize:Finalize是一个方法,属于java.lang.Object类,finalize()方法是GC (garbage collector垃圾回收)运行机制的一部分,finalize()方法是在 GC清理它所从 属的对象时被调用的三十六、Io流的层次结构从流的方向输入流 输出流从流的类型上字符流 字节流inputstream和outputstream都是抽象类它们下面的实现包括FileInputStream,BufferedInputStreamFileOutputStream,BufferedOutputStreamreader 和 writerFileReader,BufferedReader,StringReaderFileWriter,BufferedWriter,StringWriter,PrintWriter

三十七、JAVA:Java是面向对象的,跨平台的,它通过java虚拟机来进行跨平台操作,它可以进行自动垃圾回收的【c语言是通过人工进行垃圾回收】,java还会进行自动分配内存。【c语言是通过指定进行分配内存的】,只需要new一个对象,这个对象占用了多少空间,不需要我们来管,java虚拟机负责管这些,用完之后也不需要我们来释放,java虚拟机会自动释放三十八、JavaSE JavaEE JavaME区别是什么:Java SE=Java Standard Edition=j2se = java 标准版Java EE=Java Enterprise Edition=j2ee= java 企业版Java ME=Java Mobile Edition=j2me = java移动版特点:SE主要用于桌面程序(swing),控制台开发(main程序)。EE企业级开发(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),用于企业级软件开发,网络开发,web开发。ME嵌入式开发(手机,小家电,PDA)。[苹果的ios,黑莓]三者之间的关系:Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。Java SE为Java EE提供了基础。Java EE除了基于我们这个所谓的Java SE外,还新加了企业应用所需的类库三十九、JDK JRE JVM的区别:Jdk【Java Development ToolKit】就是java开发工具箱, JDK是整个JAVA的核心里边包含了jre,它除了包含jre之外还包含了一些javac的工具类,把java源文件编译成class文件,java文件是用来运行这个程序的,除此之外,里边还包含了java源生的API,java.lang.integer在rt的jar包里边【可以在项目中看到】,通过rt这个jar包来调用我们的这些io流写入写出等JDK有以下三种版本:J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序Jre【Java Runtime Enviromental】是java运行时环境,那么所谓的java运行时环境,就是为了保证java程序能够运行时,所必备的一基础环境,也就是它只是保证java程序运行的,不能用来开发,而jdk才是用来开发的,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。Jre里边包含jvmJvm:【Java Virtual Mechinal】因为jre是java运行时环境,java运行靠什么运行,而底层就是依赖于jvm,即java虚拟机,java虚拟机用来加载类文件,java中之所以有跨平台的作用,就是因为我们的jvm关系:J2se是基于jdk和jre,JDK是整个JAVA的核心里边包含了jre,Jre里边包含jvm四十、报错的状态码:301 永久重定向302 临时重定向304 服务端 未改变403 访问无权限200 正常404 路径500 内部错误四十一、协议以及默认的端口号ftp 21 文件传输协议Pop3 110 它是因特网 http://baike.baidu.com/view/1706.htm电子邮件 http://baike.baidu.com/view/1524.htm的第一个离线http://baike.baidu.com/view/113466.htm协议标准Smtp 25 简单邮件传输协议http 80 超文本传输协议oracle 默认端口号1521mysql默认端口号 3306四十二、抽象类与接口的区别1.一个类只能进行单继承,但可以实现多个接口。2.有抽象方法的类一定是抽象类,但是抽象类里面不一定有抽象方法;接口里面所有的方法的默认修饰符为public abstract,接口里的成员变 量默认的修饰符为 pulbic static final。关系接口和接口 继承接口和抽象类 抽象类实现接口类和抽象类 类继承抽象类类和类 继承四十三、修饰符的作用修饰符的作用范围:

四十四、onready和onload的区别1.onready比onload先执行2.onready是在页面解析完成之后执行,而onload是在页面所有元素加载后执行3.onload只执行最后一个而onready可以执行多个。参考:1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 $(document).ready()可以同时编写多个,并且都可以得到执行 3.简化写法 window.onload没有简化写法 (document).ready(function(){})可以简写成(document).ready(function())可以简写成(function(){});

另外,需要注意一点,由于在$(document).ready() 方法内注册的事件,只要DOM 就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的html 下载完毕,并且已经解析为DOM 树了,但很有可能图片还没有加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用Jquery 中另一个关于页面加载的方法—load() 方法。Load() 方法会在元素的onload 事件中绑定一个处理函数。如果处理函数绑定给window 对象,则会在所有内容( 包括窗口、框架、对象和图像等) 加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。 Jquery 代码如下: $(window).load(function (){ // 编写代码 });等价于JavaScript 中的以下代码 Window.onload = function (){ // 编写代码 }四十五、switch默认接受的几种数据类型Short, int, byte, char四十六、request 跟session的区别1.他们的生命周期不同,request对应的是一次请求,session对应的是一次会话2.request占用资源比较少,相对来说缺乏持续性,而session资源消耗比较大,所以通常使用request来保存信息四十七、找到解决svn冲突方法对于svn冲突,可以采用手工处理将冲突的部分进行整合,之后备份最新整合后的文件,采用覆盖更新的方式处理完冲突之后,再把最新整合后的文件进行提交。四十八、反射的描述通过字符串可以动态创建java对象,并且可以动态访问方法,属性等。我们在项目中的时候封装过数据库jdbc的持久层,其中就利用反射这项技术来达到通用和灵活的目的。


java语法基础有哪些?

1,关键字:其实就是某种语言赋予了特殊含义的单词。
保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。
2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ;
注意:
1),数字不可以开头。
2),不可以使用关键字。
3,常量:是在程序中的不会变化的数据。
4,变量:其实就是内存中的一个存储空间,用于存储常量数据。
作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
什么时候定义变量?只要是数据不确定的时候,就定义变量。
变量空间的开辟需要什么要素呢?
1,这个空间要存储什么数据?数据类型。
2,这个空间叫什么名字啊?变量名称。
3,这个空间的第一次的数据是什么? 变量的初始化值。
变量的作用域和生存期:
变量的作用域:
作用域从变量定义的位置开始,到该变量所在的那对大括号结束;
生命周期:
变量从定义的位置开始就在内存中活了;
变量到达它所在的作用域的时候就在内存中消失了;

数据类型:
1):基本数据类型:byte、short、int、long、float、double、char、boolean
2):引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;
运算符号:
1)、算术运算符。
+ - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。
++,--
2)、赋值运算符。
=+= -= *= /= %=
3)、比较运算符。
特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
4)、逻辑运算符。
&| ^! &&||
逻辑运算符除了!外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。
两边结果一样,就为false。
两边结果不一样,就为true.
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:|:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。
5)、位运算符:用于操作二进制位的运算符。
&|^
<<>>>>>(无符号右移)
练习:对两个变量的数据进行互换。不需要第三方变量。
int a= 3,b = 5;-->b = 3,a = 5;
a = a + b; a =8;
b = a - b; b =3;c
a = a - b; a =5;
a = a ^ b;//
b = a ^ b;//b= a ^ b ^ b = a
a = a ^ b;//a= a ^ b ^ a = b;
练习:高效的算出 2*8 ------------------> 位移运算的考验,java基础面试中它的曝光率不低哦
5,语句。
Ifswitchdo while whilefor
这些语句什么时候用?
1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。
但是建议使用switch,效率相对较高。
switch(变量){
case 值:要执行的语句;break;

default:要执行的语句;
}
工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了
就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;
细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;
2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;
3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。
2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
3)、当某些语句需要执行很多次时,就用循环结构。
while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
代码片段:
z: //for循环标号
for(int x=0;x<3;x++){
for(int y=0;y<2;y++){
//不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环
if(x==1)break;
//带标号跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断,
//已决定是否执行该循环体
if(x==2&&y==1)break z;
}
}

continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
java中的函数的定义格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){
执行语句;
return 返回值;
}
当函数没有具体的返回值时,返回的返回值类型用void关键字表示。
如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能。
如何定义一个函数?
函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:
1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。
2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。
函数的作用:
1)、用于定义功能。
2)、用于封装代码提高代码的复用性。
注意:函数中只能调用函数,不能定义函数。
主函数:
1)、保证该类的独立运行。
2)、因为它是程序的入口。
3)、因为它在被jvm调用。
函数定义名称是为什么呢?
答:1)、为了对该功能进行标示,方便于调用。
2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。
重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。
如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。
7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。
如何在java中表现一个数组呢?两种表现形式。
1)、元素类型[] 变量名 = new 元素类型[元素的个数];
2)、元素类型[] 变量名 = {元素1,元素2...};
元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};
---------------------------------------------------------
//二分查找法。必须有前提:数组中的元素要有序。
public static inthalfSeach_2(int[] arr,int key){
int min,max,mid;//定义最小,最大,中间数
min = 0;//最小为0
max =arr.length-1;// 最大为数组的长度-1
mid =(max+min)>>1; //(max+min)/2;//中间数为最大加最小除以2
while(arr[mid]!=key){//如果数组中间值不等于key
if(key>arr[mid]){//如果key>中间值
min = mid+ 1;
}
elseif(key
max = mid- 1;
if(max
return -1;
mid =(max+min)>>1;
}
return mid;
}
知识拓展:
java内存。
1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体呢?就是用于封装多个数据的。
1:每一个实体都有内存首地址值。
2:堆内存中的变量

java基础入门教程都有哪些?

网上教程挺多的,刚刚看了一个九天的Java学习入门教程,通过《学生管理系统》案例整合基础知识,巩固加深知识理解。

学习内容:

第一阶段:Java基础语法

Java背景与环境搭建;常量、变量、数据类型;运算符;分支语句;循环语句;数组;方法;二维数组

第二阶段:面向对象基础

面向对象思想理解;类和对象的关系;对象的使用;对象内存图;this关键字;封装;构造方法;JavaBean类的编写

第三阶段:常用API

API手册的使用;String类的特点;不同方式创建String对象的区别;字符串常见面试题;字符串常用方法;StringBuilder类的使用;StringBuilder常用方法;String和StringBuilder的区别对比

第四阶段:集合框架

集合和数组的对比;ArrayList集合对象的使用;ArrayList集合对象常用方法;ArrayList集合遍历,与封装数据到集合;综合案例 - 学生管理系统

网页链接 ? 912t

Java入门基础需要学习什么?

Java入门基础学习有很多坑,稍不留神可能你就学偏了,最后发现Java好难根本就学不会,Java确实有很多琐碎的知识点,所以对于初学者学习Java入门基础需要理清楚学习流程。那么Java入门基础需要学习什么?

Java入门基础是新手的敲门砖,千里之行,始于足下,基础打好,以后学习就会一帆风顺了。那么Java入门基础需要学习什么呢?

1、Java简介

了解什么是Java;代码语法基本格式;输出表达式。

了解Java的大致编译以及执行过程。

2、Java语言基础、循环、数组;了解类和对象。

掌握Java的基本数据类型和引用数据类型有哪些。

掌握强制数据类型转换和自动类型提升规则。

常量如何声明及赋值。

循环的语法及作用。

掌握类的概念及什么是对象。

3、OOP封装、继承、多态

面向对象的三大特征。(这块内容非常重要,相对来说较为难以理解)

4、java.util.*包下的常用类。

lang包下的基本数据类型对应的包装类(Byte,Short,Integer,Long,Double,Float,Character,Boolean);

字符串相关的类String、StringBuffer、StringBuilder.

5、IO流操作,多线程以及Socket

掌握IO读写流相关的类,了解字节流,字符流和字符流缓冲区;

掌握线程的概念,多线程的创建、启动方式,锁和同步的概念及运用;

掌握Socket通信的概念,如何声明客户端服务端,如何完成双端通信;

6、数据库基础(Mysql)及JDBC

掌握数据库的基本概念,Mysql的安装、启动与停止;

Mysql数据库客户端的安装与使用;

JDBC的概念,在Java中使用Mysql驱动包连接Mysql。

通过第一阶段的学习掌握Java语法和常用类,数据库入门技术相关知识。让自己对于存储,IO,这些有个大概的了解。

这时候,暂时不需要花大量的精力以及篇幅去学习多线程和Socket,当然这里不是说他们不重要,而是对于现阶段的你,或许很难非常清晰的明白以及了解他们具体的作用。

这里第一节忽略掉了Swing,Swing章节的内容可以不学,因为在实际的工作中基本上没有用武之地。新手在第一阶段的学习是最难熬的,因为这个阶段需要记的东西特别多,但是又不像看小说一样,什么东西都能看明白,建议大家先过一遍基础内容,不明白的地方可以先放一边,回头可以慢慢捡。

此外,不建议开始学就抱一本书在那里慢慢啃,可以找一些讲的比较好的视频跟着学。

Java入门基础其实没有想象中的那么难,我们制定好Java学习路线图然后按照Java学习路线进行学习可能会事半功倍,如果你对于Java入门基础需要学习什么?还是比较迷茫建议填写下面的表单即可获得昌平北大青鸟Java培训班免费体验课程,让昌平北大青鸟讲师为你制定Java入门基础学习路线图。

相关推荐:

java基础知识点

最新!俄对乌开出停火“四要求”:承认“新的领土现实”,并宣布俄语为国语......

东风汽车:公司与武汉市财政局、武汉长江资产经营管理有限公司均无债权债务关系

5月29日起宝鸡将全面进入汛期

2023汕头高考爱心送考咨询电话是多少

2023汕头爱心送考服务点地址查询

2023汕头爱心送考报名对象是谁

南通启东消费助力券怎么使用

声明:《java基础知识点》一文由排行榜大全(网友上传 )网友供稿,版权归原作者本人所有,转载请注明出处。如果您对文章有异议,可在反馈入口提交处理!

最近更新

  • java基础知识点

    一、JDK常用的包java.lang: 这个是系统的基础类,比如String、Math、Integer、System和Thread, 提供常用功能。java.io: 这里面是所有输入输出...

    八卦 日期:2023-06-08

  • 黛珂白檀孕妇可以用吗

    黛珂白檀是没有明确标注孕妇可以使用的,所以最好是少用或者不用。孕妇使用护肤品最好使用孕妇专用的,例如贝丝、亲润等母婴专用产品,或者注明了...

    百科 日期:2023-06-08

  • 绩效考核的流程及方案

    绩效考核的流程:绩效诊断评估、绩效目标确定、绩效管理方案、绩效测评分析、绩效辅导改善、绩效考核实施。考核方案如下:考核时间:月度考核:次月...

    百科 日期:2023-06-08

  • 孙悟空与猪八戒的关系什么

    孙悟空是中国著名的神话角色之一,出自四大名著之《西游记》。相传他由开天辟地以来的仙石孕育而生,因带领群猴进入水帘洞而成为众猴之王,号称为...

    百科 日期:2023-06-08

  • 老酒馆里的日本人谁演的

    老酒馆里的日本人是曹可凡演的,他在剧中饰演一名日本的农夫村田,面对自己老丈人的数落,他也不敢得罪,满脸都写着怯懦、老实、可怜这样的字眼。《...

    百科 日期:2023-06-08

  • 最新!俄对乌开出停火“四要求”:承认“新的领土现实”,并宣布俄语为国语......

    据参考消息5月28日援引今日俄罗斯电视台网站报道,俄罗斯外交部副部长米哈伊尔·加卢津在28日公布的采访中对乌提出了一些停火要求,比如,如果基...

    八卦 日期:2023-06-08

  • 3月10日广东潮剧院演出信息

    3月10日周五有戏演出节目单 1、潮州大锣鼓《春满渔港》司鼓:黄玉鹏 唢呐领奏:陈焕聪 郑灿杰 马文彬2、潮州弦诗乐《浪淘沙》 二弦领奏:马文彬...

    景点 日期:2023-06-08

  • 绩效考核的意义

    1、绩效考核是人员聘用的依据。由于实行了科学的评价体系,对员工的工作、学习、成长、效率、培训、发展等进行全方位的定量和定性的考核,按照...

    百科 日期:2023-06-08

邮箱不能为空
留下您的宝贵意见