java 基础知识
obession
这个作者很懒,什么都没留下…
展开
-
分割字符串
package 练习系统;/*给一个字符串"20 78 9 -7 88 36 29" * 对立面的数字进行排序*/import java.util.Arrays;public class 练习题 { public static void main(String[] args){ String input = "20 78 9 -7 88 36 29";原创 2017-02-28 18:55:36 · 242 阅读 · 0 评论 -
值传递和引用传递
1、对象是按引用传递的2、Java 应用程序有且仅有的一种参数传递机制,即按值传递3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本1.对象就是传引用2.原始类型就是传值3.String,Integer, Double等immutable类型因原创 2017-08-13 10:01:00 · 179 阅读 · 0 评论 -
CVTE笔试题
CVTE笔试题1、根据IP地址获取物理地址的协议是:ARP,地址解析协议,属于数据链路层;2、划分子网的问题:点这里,以前写的划分子网的题3、网关、路由器、交换机、网桥属于哪一个层次?4、中后缀序中后缀表达法5、快速排序:冒牌–>快速排序6、Mysql 基本语句7、static 块执行顺序:(静态变量、静态初始化块)—— 》 (变量、初始化块)—— 》 构造函数,()中的内容是按照代码前后循序执行当原创 2017-08-27 14:33:52 · 1467 阅读 · 0 评论 -
java-多线程-几种常用的操作方法
* Thread的常用方法:* 1.start():启动线程并执行相应的run()方法* 2.run():子线程要执行的代码放入run()方法中* 3.currentThread():静态的,调取当前的线程* 4.getName():获取此线程的名字* 5.setName():设置此线程的名字* 6.yield():调用此方法的线程释放当前CPU的执行权;线程让步,让当前线原创 2017-04-24 18:20:44 · 422 阅读 · 0 评论 -
多线程练习-synochronized-notify/wait-lock/condition
子线程循环 10 次,接着主线程循环 100,接着又回到子线程循环 10 次, * 接着再回到主线程又循环 100,如此循环 50次,请写出程序注意:在Eclipse中:run-->Run Configurations-->Common-->Standard input and output (可能不同版本的Eclipse位置会有所不同)File选择你想要保存的文件(比原创 2017-08-30 21:26:59 · 469 阅读 · 0 评论 -
java-多线程-生命周期
多线程有五种生命状态:新建,就绪,运行,阻塞,死亡;新建:当线程被声明创建后,就进入新建状态;就绪:新建后的线程调用了start方法,就进入就绪,此时等待cpu调用他;所以启动线程一定是调用start方法;而且只能对新建的线程调用start,不然会出现IllegalThreadStateException异常如果想调用了start方法马上开始执行,马上让cput执行它,可以用Thr原创 2017-04-24 17:54:05 · 274 阅读 · 0 评论 -
构造方法
在子类继承父类的情况,创建子类对象,是先生成 父类对象再生成子类对象;1.如果父类没有有参构造方法,子类会调用父类的无参构造方法,当然是隐式的,不用写出来,再调用自己的构造方法;2.如果父类有有参构造方法,系统就不会默认创造一个无参的构造方法了,这时,子类需要显示的调用父类的有参构造方法,super();3.构造方法可以调用本类的其他构造方法,this参数,但是必须在构造方法的第一行;原创 2017-09-27 10:32:14 · 288 阅读 · 0 评论 -
HashMap相关知识点
HashMap:1、HashMap基本概念HashMap是储存键值对的数据储存结构,其底层实际是数组加链表的形式。一个key对应多个value,key和value也可以是null值,相对比的是Hashtable,不可以是null值;HashMap是线程不安全的,对比的是Hashtable,是线程安全的;2、HashMap的工作原理(储存步骤)HashMap是无序不可重复的,当存入一个key1-val原创 2017-09-02 10:59:23 · 431 阅读 · 0 评论 -
java-数值,对象比较---"=="和"equals"以及自动装箱后的比较
Integer,Long等基本数据类1.字符串转数字:iint y = Integer.parseInt("1235");int x= Integer.parseInt("100",2); 100以2进制转换成4Integer a = Integer.valueOf("1234");Integer b = Integer.valueOf("100",2);这两个方法功能一样原创 2017-02-28 19:08:37 · 777 阅读 · 0 评论 -
JVM内存管理
1 物理内存和虚拟内存通常在操作系统下,内存的管理是按照进程来管理的,每个进程会有独特的地址,独立的地址空间。这里的独立指的是逻辑上的相互独立。虚拟内存的出现让多个线程共享物理内存,但是还是在逻辑上保证不能相互访问;2 内核空间和用户空间内核空间是操作系统用来程序调度,连接硬件资源等所使用的内存;程序能申请的只能是用户空间的内存;3 JVM的内存结构Java启动后也作为一个进程原创 2017-08-12 19:56:42 · 267 阅读 · 0 评论 -
类的加载机制
1.概述:虚拟机把class文件加载到内存,并对数据校验,解析,初始化,最终形成虚拟机可以直接使用的java类型;这就是虚拟机的类加载机制;其分为三部分,加载,连接,初始化并且都是在程序运行期间完成的,Java动态语言的扩展性就是依赖运行期动态加载和动态连接实现的。整个类的声明 周期为:加载--》连接(包括验证,准备,解析)--》初始化--》使用--》卸载2.类的加载:类的加载由类加载原创 2017-08-10 10:54:07 · 829 阅读 · 2 评论 -
java-多线程-线程同步问题
*1.线程安全问题存在的原因?* 由于一个线程在操作共享数据过程中,未执行完毕的情况下,另外的线程参与进来,导致共享数据存在了安全问题。* * 2.如何来解决线程的安全问题?* 必须让一个线程操作共享数据完毕以后,其它线程才有机会参与共享数据的操作。1.比如:去银行取钱,A,B线程同时对账户1取钱,当线程A从账户1取出钱后,但还没来得及改变账户余额,CPU就切换成了原创 2017-04-24 21:28:51 · 399 阅读 · 0 评论 -
初识动态代理-jdk,CGLIB,拦截器
像代理服务器一样,你想访问真实服务器不直接访问而是通过一个中转站,代理服务器访问; 调用真实对象的一个方法不直接调用,而是通过产生的一个代理对象调用。代理分为两步:第一,先产生一个代理对象,并和真实的对象关联起来,产生代理关系;第二,实现代理对象的代理逻辑方法,这里一般都是由一个实现一个接口做的,JDK动态代理用java.lang.reflect.InvocationHandler这个接口;CGL原创 2017-09-05 16:41:39 · 445 阅读 · 0 评论 -
类加载的三种方式比较
虚拟机加载类的途径 1、由 new 关键字创建一个类的实例 在由运行时刻用 new 方法载入 如:Dog dog = new Dog(); 2、调用 Class.forName() 方法 通过反射加载类型,并创建对象实例 如:Class clazz = Class.forName(“Dog”); Object dog =clazz.newInsta转载 2017-10-16 10:34:30 · 5978 阅读 · 0 评论 -
java-final关键字
1.final 可修饰类;变量;方法;修饰变量的时候,一旦给予了初始值,就不能再改变了; final既可以修饰类变量,也可以修饰实例变量,或者局部变量,形参;所以,考虑到类在初始化的时候,类变量就被分配内存,如果不在这里给予初始值,就被系统默认分配初始值,那么定义的final变量也就没有意义了,因为在后面也不能改了嘛;同时,实例变量,在类new对象的时候,会被系统分配内存,并被给予初始原创 2017-04-28 09:37:59 · 254 阅读 · 0 评论 -
用Calendar处理日期类问题
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Scanner;public class 恋爱纪念日 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner i原创 2017-03-30 21:11:08 · 377 阅读 · 1 评论 -
给一个字符串"20 78 9 -7 88 36 29"排序
/*给一个字符串"20 78 9 -7 88 36 29" * 对立面的数字进行排序*/import java.util.Arrays;public class 练习题 { public static void main(String[] args){ String input = "20 78 9 -7 88 36 29"; String aString原创 2017-02-28 19:10:02 · 671 阅读 · 0 评论 -
集合框架-List()
List 除了用迭代器遍历元素,还可以用for循环+list.get(i)遍历;import java.util.ArrayList;import java.util.Iterator;import java.util.ListIterator;public class 练习题 { public static void main(String[] args){ ArrayList l原创 2017-03-01 21:21:02 · 208 阅读 · 0 评论 -
double型强转int型--向下取整;+0.5实现四舍五入
public class test2 { public static void main(String[] args) { // TODO Auto-generated method stub double a = 100.1; double b = 100.5; float c = 100.1f; float d = 100.5f; System.out.printl原创 2017-03-22 19:47:18 · 7785 阅读 · 1 评论 -
long型声明加L。。
long num = 22952601027516L;long num = 22952601027516; 因为默认是int型装不下 会报错The literal 22952601027516 of type int is out of range原创 2017-03-23 11:27:05 · 699 阅读 · 0 评论 -
利用二进制枚举
用二进制的一位表示集合对应某一元素的选取状态,1 表示选取,0 表示未选取;----------------------------------------------------------------------------------------------------------先介绍位运算:位运算是对二进制的每一位进行计算,所以每一位只有 00 或 11两种可能三种常用的原创 2017-03-31 11:08:23 · 1312 阅读 · 0 评论 -
定義一个二维动态数组
ArrayList childnum[] = new ArrayList[2];//声明一个数组arraylist类型的 childnum[0] = new ArrayList<>();//数组里面的对象还要new childnum[0].add(1); childnum[1] = new ArrayList<>(); childnum[1].add(1);原创 2017-03-24 17:33:11 · 298 阅读 · 0 评论 -
Arrays 和 Collections 排序
import java.util.*;public class Main { public static void main(String[] argv) { /*升序排列*/ int a[] = {9,8,34,26,1}; Arrays.sort(a,2,4);//对指定 int 型数组的指定范围按数字升序进行排序。 for (int i =原创 2017-03-24 21:45:20 · 345 阅读 · 0 评论 -
HashSet集合简单使用
给你两个集合,计算其并集,即 {A}+{B}\{A\} + \{B\}{A}+{B}。注:{A}+{B}\{A\} + \{B\}{A}+{B} 中不允许出现重复元素,但是 {A}\{A\}{A} 与 {B}\{B\}{B} 之间可能存在相同元素。输入格式输入数据分为三行,第一行有两个数字 n,m(0n,m(0输出格式输出一行数据,表示合原创 2017-03-25 21:39:06 · 761 阅读 · 0 评论 -
蓝桥杯-小数运算,保留小数点
java 中默认小数声明是double; 如:float x = 1.0;报错;需要写:float x = 1.0f;* float表示单精度浮点数在机内占4个字节,用32位二进制描述* double表示双精度浮点数在机内占8个字节,用64位二进制描述* 对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double原创 2017-04-01 16:15:25 · 917 阅读 · 0 评论 -
java-finally块和return执行先后顺序
来自牛客网的java笔试题:public class Test{ public int add(int a,int b){ try { return a+b; } catch (Exception e) { System.out.println("catch语转载 2017-04-29 18:51:15 · 534 阅读 · 0 评论 -
java-多线程-线程池
对于共享资源,有一个通用的设计模式:Resource Pool -资源池;用于解决资源频繁请求,释放所造成的性能下降;比如数据库每次操作都打开,关闭连接,会造成系统性能低下;所以在刚开始的时候就把这些共享的数据库都建立好连接,组成一个连接池,需要的时候就从池里面拿,用完就还回去;提升程序的运行效率;原创 2017-04-25 10:36:43 · 254 阅读 · 0 评论 -
java-多态
Java的引用变量有两种类型,一种是编译时类型,声明的时候的类型所决定;另外一种是运行时类型,由运行时的类型所决定;如 Object test = new String(); Object就是test的编译类型;String 就是test的运行类型;而在子类对象赋值给父类引用变量,称为向上转型;自动完成;而父类对象赋值给子类的时候,就需要强制换换;,容易报异常:ClassCastE原创 2017-04-27 10:09:46 · 190 阅读 · 0 评论 -
java-高级语言的运行机制
计算机高级语言可以分为解释型和编译型两种:编译型:就是在程序执行之前,有一个单独的编译过程Compile,将高级语言的源代码编译成机器码,以后执行这个程序的时候就不用再编译了;如C,C++,Objective-C,Pascal解释型:程序每次运行的时候都需要解释成机器码,所以每次执行都需要这么解释一次。所以运行效率相对于编译型较低;如ruby,python然而Java并不单原创 2017-04-27 10:54:21 · 525 阅读 · 0 评论 -
java-多线程-基本概念/四种种创建thread的方式
程序:是一段静态的代码;进程:处于运行过程的程序,是动态的,是独立存在的,拥有自己的资源,自己的私有地址;多个进程可以在单个cpu上并发执行;(并发性:同一时刻,只能有一条指令执行,在cpu快速切换的情况下看起来像同时执行;并行性:同一时刻多条指令在多个cpu上同时执行;)线程:程序的一条执行路径;一个进程可以有多个线程;因为硬件和操作系统的不同而采用不同的策略:共用的多任原创 2017-04-24 11:10:36 · 312 阅读 · 0 评论 -
HashMap简单使用
蒜头君来蒜厂面试的时候,曾经遇到这样一个面试题:给定 nnn 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一个。当时可算是给蒜头君难住了。现在蒜头君来考考你。输入格式第一行输入一个整数 n(1≤n≤100000)n(1 \le n \le 100000)n(1≤n≤100000),接下来一行输入 nnn 个 int 范围内的整数。输出原创 2017-03-25 21:44:41 · 496 阅读 · 0 评论 -
反射对象和方法
package 设计模式;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;class Person { String name = "renbin"; public Person() { // TODO Auto-generated constructor st原创 2017-09-05 10:39:50 · 485 阅读 · 0 评论