精华内容
下载资源
问答
  • 高级部分6.1 Linux使用过吧,一般用它来做什么?Linux是一个长时间运行比较稳定的操作系统,所有我们一般会拿它作为服务器(web,db等)。Linux本身具有C的编译环境,我们的一些软件是没有软件包(redis、nginx等)的,...
    上续《 Java面试笔记(上)》和《 Java面试笔记(中)》,最后,总结一下高级部分及项目和业务相关的部分。
    89462895499285c9e0f9078105c050c0.gif

    Java 的相关技能

    6.高级部分

    6.1 Linux使用过吧,一般用它来做什么?

    Linux 是一个长时间运行比较稳定的操作系统,所有我们一般会拿它作为服务器(web,db等)。

    Linux 本身具有 的编译环境,我们的一些软件是没有软件包(redis、nginx等)的,需要在Linux 的 C 编译环境编译得到软件包。

    6.2 说一下 Linux 下的一些常用命令?

    常用:

    pwd 获取当前路径

    cd 跳转到目录

    su -u 切换到管理员

    ls 列举目录

    文件操作命令:

    文件

       tail 查看

       rm -rf

       vi

    文件夹

       mkdir

       rm -r

    6.3 你是使用什么来连接远程的 Linux 服务器的?

    需要依赖于 Linux 服务器安装 ssh 服务端,一般这个 ssh 服务的端口 22;

    需要依赖于 Linux 服务器安装 sftp 服务端,一般这个 sftp 服务的端口 25。

    面试:使用 xshell、putty 等 ssh 客户端来连接服务器,使用 xftp、winscp 等 sftp 客户端来上传和下载文件。连接和上传、下载必须依赖于服务器的 ssh、sftp 服务,也就是 linux 服务器需要启动这两个服务。

    6.4 有没有使用过云主机?

    使用过,在原来的公司,我们没有使用自己的服务器,而是租用阿里的云主机。或者回答没有使用过,但是有所了解。

    云主机就是一些云服务运营商(阿里、华为、腾讯等),提供的远程服务器,我们开发者或者企业只需按需付费就可以租用对应的服务器。

    使用 ssh 和 sftp 来进行操作。

    6.5 有没有做过数据库优化方面的工作?

    做过 mysql 数据库的优化。

    定位:查找、定位慢查询;

    优化手段:

    a) 创建索引:创建合适的索引,我们就可以现在索引中查询,查询到以后直接找对应的记录;b) 分表:当一张表的数据比较多,或者一张表的某些字段的值比较多并且很少使用时,采用水平分表和垂直分表来优化;c) 读写分离:当一台服务器不能满足需求时,采用读写分离的方式进行集群;d) 缓存:使用 redis 来进行缓存;

    6.6 查找慢查询并定位慢查询?

    在项目检查或项目转测试之前,在启动 mysql 数据库时开启慢查询,并且把执行慢的语句写到日志中,在运行一定时间后。通过查看日志找到慢查询语句。

    使用 explain SQL 语句的格式来详细分析语句的问题

    2adeb81b7c38721b2989d2faf24fb871.png

    6.7 数据库优化之遵循范式?数据库表设计时需要遵循方式表的范式,是首先符合 1NF才能满足2NF,进一步满足3NF。1NF:即表的列的具有原子性,不可再分解,即列的信息,不能分解;只要数据库是关系型数据库(mysql/oracle/db2/sysbase/sql server),就自动的满足1NF,关系型数据库中是不允许分割列的。2NF:表中的记录是唯一的通常我们设计一个主键来实现3NF:即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.(外键)反3NF:没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余订单和订单项、相册浏览次数和照片的浏览次数。

    6.8 怎样选择合适的存储引擎?

    在开发中,我们经常使用的存储引擎 myisam / innodb / memory

    MyISAM 存储引擎:如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用 myisam 存储引擎. 比如 bbs 中的发帖表,回复表INNODB 存储引擎:对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表;Memory 存储:我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用 memory,速度极快。附:存储引擎对比

    b517c4eea89aaae23fca64ac6aa36af5.png

    6.9 数据库优化,如何创建合适的索引?

    索引(Index)是帮助 DBMS 高效获取数据的数据结构

    分类:普通索引唯一索引主键索引全文索引普通索引允许重复的值出现;唯一索引除了不能有重复的记录外,其它和普通索引一样(用户名、用户身份证、邮箱、电话)主键索引:是随着设定主键而创建的,也就是把某个列设为主键的时候,数据库就会该该列创建索引,这就是主键索引,唯一且没有 null 值。全文索引:用来对表中的文本域(char,varchar,text)进行索引, 全文索引针对 MyIsam

    6.10 索引使用小技巧?

    索引弊端:1.占用磁盘空间;2.对 dml (插入、修改、删除)操作有影响,变慢;具体技巧:1.对于创建的多列索引(复合索引),不是使用的第一部分,就不会使用索引,例如
    alter table dept add index my_ind (dname,loc); //dname是左边的列,loc是右边的列
    explain select * from dept where dname='aaa'; 会使用到索引
    explain select * from dept where loc='aaa';   不会使用到索引

    2.对于使用 like 的查询,查询如果是 '%aaa',不会使用到索引,而 'aaa%' 会使用到索引,例如

    explain select * from dept where dname like '%aaa'; 不能使用索引
    explain select * from dept where dname like 'aaa%'; 使用索引.

    所以在 like 查询时,关键字的最前面不能使用 % 或者 这样的字符,如果一定要前面有变化的值,则考虑使用全文索引 ->sphinx

    3.如果使用 or 存多个条件,若存在有条件使用索引,有条件没有使用索引,那么即使其中有条件带索引,该索引也不会使用。换言之,就是要求使用的所有字段都必须单独使用时才能使用索引。

    4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引。例如

    expain select * from dept where dname=’111’;
    expain select * from dept where dname=111;(数值自动转字符串)
    expain select * from dept where dname=qqq; 报错

    也就是,如果列是字符串类型,无论是不是字符串数字就一定要用单引号 ‘’ 把值包括起来。

    5.如果在 mysql 中,估计使用全表扫描要比使用索引快,则不使用索引

    表里面只有一条记录

    6.11 数据库优化之分表?

    分表分为水平(按行)分表垂直(按列)分表一般来说,MySQL 表数据一般达到百万级别时,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度较少这些压力,也就是按行数据进行分表。如果一张表中某个字段值非常多(长文本、二进制等),而且只有在很少的情况下会查询。这时候就可以把字段多个单独放到一个表,通过外键关联起来。

    水平分表策略:

    1.按时间分表这种分表方式有一定的局限性,当数据有较强的实效性,如微博发送记录、微信消息记录等,这种数据很少有用户会查询几个月前的数据,就可以按月分表。

    2.按区间范围分表

    一般在有严格的自增id需求上,如按照 user_id 水平分表

    table_1  user_id 从 1 ~ 100w

    table_2  user_id 从 101 ~ 200w

    table_3  user_id 从 201 ~ 300w

    3.hash分表*****

    通过一个原始目标的 ID 或者名称通过一定的 hash 算法计算出数据存储表的表名,然后访问相应的表。

    6.12 数据库优化之读写分离

    一台数据库支持的最大并发连接数是有限的,如果用户并发访问太多,一台服务器满足不要要求是就可以集群处理,Mysql 的集群处理技术最常用的就是读写分离。

    主从同步:数据库最终会把数据持久化到磁盘,如果集群必须确保每个数据库服务器的数据是一致的。能改变数据库数据的操作都往主数据库去写而其他的数据库从主数据库上同步数据。

    读写分离:使用负载均衡来实现写的操作都往主数据去,而读的操作往从服务器去。

    6.13 数据库优化之缓存

    持久层(dao)数据库(db)之间添加一个缓存层,如果用户访问的数据已经缓存起来时,在用户访问时直接从缓存中获取,不用访问数据库。而缓存是在操作内存级,访问速度快。

    作用:减少数据库服务器压力,减少访问时间。

    Java 中常用的缓存有

    1hibernate 的二级缓存,但该缓存不能完成分布式缓存;

    2、可以使用 redis(memcahe )来作为中央缓存,对缓存的数据进行集中处理;

    6.14 语句优化小技巧

    DDL优化:

    1、通过禁用索引来提供导入数据性能,这个操作主要针对有数据库的表,追加数据

    //去除键
    alter table test3 DISABLE keys;
    //批量插入数据
    insert into test3 select * from test;
    //恢复键
    alter table test3 ENABLE keys;

    2、关闭唯一校验

    set unique_checks=0  关闭
    set unique_checks=1  开启

    3、修改事务提交方式(导入)(变多次提交为一次)

    set autocommit=0   关闭
    //批量插入
    set autocommit=1   开启

    DML优化(变多次提交为一次)

    insert into test values(1,2);
    insert into test values(1,3);
    insert into test values(1,4);
    //合并多条为一条
    insert into test values(1,2),(1,3),(1,4)

    DQL优化

    Order by 优化

        1、多用索引排序

        2、普通结果排序(非索引排序)Filesort

    group by 优化

        使用 order by null 时,取消默认排列

    子查询优化

        在客户列表找到不在支付列表的客户
    #在客户列表找到不在“支付列表”的客户 , 查询没买过东西的客户
    explain
    select * from customer where customer_id not in (select DISTINCT customer_id from payment); #子查询      -- 这种是基于func外链
    explain 
    select * from customer c left join payment p on(c.customer_id=p.customer_id) where p.customer_id is null   -- 这种是基于“索引”外链

    Or 优化

        在两个独立索引上使用 or 的性能优于

    1、or 两边都是用索引字段做判断,性能好!!2、or 两边,有一边不用,性能差3、如果 employee 表的 name 和 email 这两列是一个复合索引,但是如果是:name='A' OR email='B' 这种方式,不会用到索引!limit 优化
    select film_id,description from film order by title limit 50,5;
    // 优化后
    select a.film_id, a.description from film a inner join (select film_id from film order by title limit 50,5) b on a.film_id=b.film_id

    6.15 有没有使用过 Redis?Redis 是什么

    Redis 是一个 key-value 的非关系型数据库,数据先存到内存中,会根据一定的策略持久化到磁盘即使断电也不会丢失数据。支持的数据类型比较多。

    主要用来做缓存数据库的数据和 web 集群时当做中央缓存存放 seesion。

    6.16 简单说一下 redis 的使用场景?

    缓存把经常需要查询的、很少修改数据,放到读速度很快的空间(内存),以便下次访问减少时间,减轻压力,减少访问时间。

    计数器redis 中的计数器是原子性的内存操作,可以解决库存溢出问题,进销存系统库存溢出。

    session 缓存服务器web 集群时作为 session 缓存服务器。

    6.17 Redis 数据淘汰机制

    在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的。譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 1.5G 的内存大小,减少内存紧张的情况,由此获取更为稳健的服务。

    内存大小有限,需要保存有效的数据:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

    Redis 提供 种数据淘汰策略:

    volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰;

    volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰;

    volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰;

    allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰;

    allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰;

    no-enviction(驱逐):禁止驱逐数据

    6.18 Redis 集群

    当一台数据无法满足要求,可以使用 reids 集群来处理,类似于 mysql 的读写分离

    7.项目和业务部分

    7.1 项目分类

    在公司中做的项目可以分为两种:产品、项目

    项目:就是给一些公司接的项目,项目开发完成后,就交互,后面这个项目代码就不在维护了;

    产品:充分考虑扩展性和基本业务,来做一个产品,在这个产品上可以进行定制开发

    7.2 项目流程

    可行性分析和立项开工会

    需求分析

    需求设计

    项目开发(多个迭代)

    迭代开工会迭代设计

    迭代开发

    迭代测试

    集成测试

    迭代发布

    迭代总结 ....不断迭代

    项目验收

    项目总结


    9299dbdb0d1e8a46faca3e5b434eef13.png9299dbdb0d1e8a46faca3e5b434eef13.png9299dbdb0d1e8a46faca3e5b434eef13.png

    一个基本完整的 Java 面试笔记总结完了,中间基本涵盖了 Java 相关的各方面,奥利给!求关注,求转发!

    推荐阅读:

    Java面试笔记(上) | Java面试笔记(中)

    5ba350d33a1f256fc8bcfe139d028f77.png

    88738a76c835c74d360a72c5187b4187.png

    展开全文
  • java的异常处理机制 ...一般画UML图的都是软件架构师,或者说是系统分析师,软件设计人员使用的 在UML图中,可以描述类和类之间的关系,程序执行的流程,对象的状态等 在java软件开发当中,软件分..
    1. java的异常处理机制
      异常在java中以类和对象的形式存在,那么异常的继承结构是怎样的?
      我们可以使用UML(Unified Modeling Language)图来描述一下继承结构

    2. 什么是UML?有什么用?
      UML是一种统一建模语言
      一种图表式语言(画图的)
      UML不是只有java中使用,只要是面向对象的编程语言,都有UML
      一般画UML图的都是软件架构师,或者说是系统分析师,软件设计人员使用的
      在UML图中,可以描述类和类之间的关系,程序执行的流程,对象的状态等
      在java软件开发当中,软件分析师/设计师负责设计类,java软件开发人员必须要能看懂。


    Throwable:
    –Error (不可处理,直接退出JVM)
    –Exception (可处理的)
    所有的错误只要发生,Java程序只有一个结果,那就是终止程序的执行,退出JVM,错误是不能处理的

    Exception:
    –RuntimeException
    –ExceptionSubClass (不是类名,Exception的直接子类)

    所有的RuntimeException及子类都属于运行时异常, 运行时异常在编写程序阶段,可以选择处理,也可以选择不处理。
    所有Exception的直接子类,都叫做编译性异常
    编译时异常是在编译阶段发生的吗?不是
    编译时异常是表示必须在编写程序的时候预先对这种异常进行处理,如果不处理,编译器报错


    编译时异常和运行时异常,都是发生在运行阶段。编译阶段异常是不会发生的。编译时异常因为什么而得名?
    因为编译时异常必须在编译(编写)阶段预先处理,如果不处理编译器报错,因为得名。
    所有异常都是在运行阶段发生的,因为只有程序运行阶段才可以new对象。
    因为异常的发生就是new异常对象


    编译时异常和运行时异常的区别?
    编译时异常一般发生的概率比较高。
    –举例:看到外面下雨,出门之前会预料到如果不打伞,可能会生病(生病是一种异常),而且这个异常发生的概率很高,所以出门之前要拿一把伞,“拿一把伞”就是对“生病异常”发生之前的一种处理方式。

    对于一些发生概率较高的异常,需要在运行之前对其进行预处理。

    运行时异常一般发生的概率比较低。
    举个例子:小明走在大街上,可能会被天上的飞机轮子砸到
    被飞机轮子砸到也算一种异常,但是发生概率较低
    在出门之前,没必要提前对这种发生概率较低的异常进行预处理。
    如果预处理这种异常,会很累。

    假设java中没有对异常进行划分,没有分为:编译时异常和运行时异常,所有的异常都需要在编写程序阶段对其进行预处理,将是怎样的效果呢?
    首先,如果这样的话,程序肯定是绝对安全的,但是程序员编写程序太累,到处都是处理异常的代码


    编译时异常还有其他名字:

    受检异常:checkedException
    受控异常
    

    运行时异常还有其他名字:

    非受检异常:UncheckedException
    非受控异常
    

    再次强调:所有异常都是发生在运行阶段的

    Java语言中对异常的处理包括两种方式:

    第一种方式:在方法声明的位置上,使用throws关键字,抛给上一级。谁调用我,我就抛给谁,抛给上一级
    第二种方式:使用try..catch语句进行异常的捕捉
    
    举个栗子:
    我是公司一个销售员,因为我的失误,导致公司损失1000元,这可以看做是一个异常发生
    第一种方式:我把这件事告诉我的领导(异常上抛)
    第二种方式:我自己把这个钱不上(异常捕捉)
    
    思考:
    异常发生之后,如果我选择了上抛,抛给了我的调用者,调用者需要对这个异常继续处理,那么调用者处理这个异常同样有两种处理方式。
    

    注意:Java中异常发生之后如果一直上抛,最终抛给了main方法,main方法继续向上抛,抛给了调用者JVM,JVM知道这个异常发生,只有一个结果:终止java程序的执行


    注意:只要异常没有捕捉,采用上报的方式,此方法的后续代码不会执行。
    另外需要注意,try语句块中的某一行出现异常,该行后面的代码不会执行。
    try…catch捕捉异常之后,后续代码可以执行

    深入try…catch

    1. catch后面的小括号中额类型可以是具体的异常类型,也可以是该异常类型的父类型
    2. catch可以写多个,建议catch的时候,精确的一个一个处理,这样有利于程序的调试
    3. catch写多个的时候,从上到下,必须遵守从小到大。

    异常对象有两个非常重要的方法:
    –获取异常简单的描述信息

    String msg = exception.getMessage();
    

    –打印异常追踪的堆栈信息
    java后台打印异常堆栈追踪信息的时候,采用了异步线程的方式打印的。

    exception.printStackTrace();
    
    public class ExceptionTest08 {
    	public static void main(String[] args) {
    		
    		NullPointerException e = new NullPointerException("空指针异常");
    
    		String msg = e.getMessage();
    		System.out.println(msg);
    
    		e.printStackTrace();
    	}
    }
    

    关于try…catch中的finally子句:

    1. 在finally子句中的代码是最后执行的,并且是一定会执行的,即使try语句块中的代码出现了异常
      finally子句必须和try一起出现,不能单独编写
    2. finally语句通常使用在哪些情况下呢?
      通常在finally语句块中完成资源的释放/关闭
      因为finally中的代码比较有保障
      即使try语句中的代码出现异常,finally中代码也会正常执行
    3. 再次强调,放在finally语句块中的代码是一定会执行的【再次强调】
      除非有System.exit,JVM终止程序

    以下代码执行顺序:
    先执行try
    再执行finally
    最后执行return (return语句只要执行方法必然结束)

    public class ExceptionTest11 {
    	public static void main(String[] args) {
    		try {
    			System.out.println("try");
    			return;
    		} finally {
    			System.out.println("finally");
    		}
    	}
    }
    

    public class ExceptionTest13 {
    	public static void main(String[] args) {
    		int result = m();
    		System.out.println(result); //100
    
    	public static int m() {
    		int i = 100;
    		try {
    			return i;
    		} finally {
    			i++;
    		}
    	}
    }
    

    Java语法规则:
    方法体中的代码必须遵循自上而下的顺序依次逐行执行(亘古不变的语法)
    这行代码return i;出现在int i = 100;的下面,所以最终结果必须是返回100
    return语句一旦执行,整个方法必须结束(亘古不变的语法)

    反编译之后的效果

    public static int m() {
    	int i = 100;
    	int j = i;
    	i++;
    	return j;
    }
    

    finalize()是Object类中的一个方法,作为方法名出现,
    所以finalize是标识符
    这个方法是由垃圾回收器GC负责调用的


    仅供学习使用,内容版权归B站老师所有。

    展开全文
  • 在整个软件系统运行过程中,这个类只被实例化一次,以后不管在哪里只调用这一个实例 例如实例化对象的创建要消耗大量的时间和资源 使用单例模式解决什么问题? 一般都是new对象太费劲,或者频繁的new对象没必要 饿汉...

    设计模式就是在我们实际编程过程中,逐渐总结出的一些解决问题的套路
    单例:只有一个实例(实例化对象)
    在整个软件系统运行过程中,这个类只被实例化一次,以后不管在哪里只调用这一个实例
    例如实例化对象的创建要消耗大量的时间和资源
    使用单例模式解决什么问题? 一般都是new对象太费劲,或者频繁的new对象没必要

    饿汉式的单例:先new一个对象 谁用的时候就直接调用

    public class Single {
    	
    	//私有的构造,调用这个类的人就不能通过new来创建对象了
    	private Single(){
    		
    	}
    	
    	//私有的Single类型的类变量
    	private static Single single=new Single();
    	
    	public static Single getInstance(){
    		
    		return single;
    	}
    
    }
    
    	Single s1=Single.getInstance();
    	Single s2=Single.getInstance();
    	Single s3=Single.getInstance();
    	Single s4=Single.getInstance();
    	Single s5=Single.getInstance();
    

    不管用多少次都是调用的同一个new Single()对象

    懒汉式单例模式:最开始对象时null,直到有第一个人调用我才new一个对象,之后所有调用我的都用到这个对象

    public class Single1 {
    	//先私有化构造方法,让外面不能直接new对象
    	private Single1(){
    		
    	}
    	
    	private static Single1 s1=null;
    	public static Single1 getInstance(){
    		if(s1==null){
    			s1=new Single1();
    		}
    		return s1;
    	}
    
    }
    
    	Single1 s1=Single1.getInstance();
    	Single1 s2=Single1.getInstance();
    	Single1 s3=Single1.getInstance();
    	Single1 s4=Single1.getInstance();
    

    第一次调用的时候new Single1()对象,以后每次调用都调用第一次的new Single对象

    展开全文
  • 软件构造 课堂笔记8 脑补版

    千次阅读 2017-10-27 23:27:52
    由于出去比赛了,没有上课,因此对照PPT自己脑补了一份课堂笔记。。。表驱动法要说的是,我们常常可以map来做表驱动。cpp里面的map重载了[]操作符,因此看上去更像了。另外Java里面以前hashmap和hashtable不是...

    由于出去比赛了,没有上课,因此对照PPT自己脑补了一份课堂笔记。。。


    表驱动法

    要说的是,我们常常可以用map来做表驱动。cpp里面的map重载了[]操作符,因此看上去更像了。另外Java里面以前hashmap和hashtable不是差不多的嘛 。

    PPT中写到一般表里存数据,偶尔存动作。举个存动作的简单例子,cpp里面可以存函数指针,然后输入某个命令执行某个动作,就可以用到表驱动。

    • 直接访问表

      这没什么好说的

    • 索引访问表

      这是用来解决直接访问表时,查询条件所占空间过大的问题的。

    • 阶梯访问表

      只要你会写最简单的for循环来查找,你就会用for打表了。你只要把for改写成打表,你就可以用二分来代替遍历了。

    展开全文
  • Linux入门笔记

    2018-04-28 01:43:29
    公司一般用centOs Java 分为 javase javaEE javaME (javaME属于嵌入式开发) 虚拟机软件: 在window环境支持的虚拟机软件 有2个 第一个VMware:收费的第二种的 是Vbox 1.什么是LInux? 就是一个操作系统…………...
  • 线程池:Java 线程池学习总结、拿来即的线程池最佳实践 乐观锁与悲观锁 ThreadLocal 关键字解析 并发容器总结 JUC 中的 Atomic 原子类总结 AQS 原理以及 AQS 同步组件总结 JVM (必看 ) Java 内存区域 JVM ...
  • 线程池:Java 线程池学习总结、拿来即的线程池最佳实践 乐观锁与悲观锁 ThreadLocal 关键字解析 并发容器总结 JUC 中的 Atomic 原子类总结 AQS 原理以及 AQS 同步组件总结 JVM (必看 ) Java 内存区域 JVM ...
  • 初学笔记(七) 关于注释 1、什么是注释?有什么用? 注释是对java源代码的解释说明。 ... 注释可以帮助程序员更好的理解程序... 3、在实际的开发中,一般项目组都要求积极的编写注释,这也是一个java软件工程师 ...
  • 韩顺平oracle学习笔记

    2018-07-08 00:16:48
    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...
  • 对于学Java后的反思

    2013-11-01 19:36:41
    今天安卓软件开发的第一个阶段JavaSE的课程结束了,从什么都不懂,到现在有些懂了的,不敢说都全部接收,但至少懂了基本的语法和看懂了代码,这让我觉得有点小小的成就感,但更多的是遗憾,因为我学的只是一般。...
  • 11..net做B/S结构的系统,您是几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:一般为3层 数据访问层,业务层,表示层。 数据访问层对数据库进行增删查改。 业务层一般分为二层,业务表观层...
  • oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
  • Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息队列,一般用作系统间解耦、异步通信、缓冲流量削峰填谷,同时提供了简单的流处理功能. 1.什么叫...
  • 另外项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目什么技术实现了什么功能比如: redis 做缓存提高访问...
  • 线程池:Java 线程池学习总结、拿来即的线程池最佳实践 乐观锁与悲观锁 ThreadLocal 关键字解析 并发容器总结 JUC 中的 Atomic 原子类总结 AQS 原理以及 AQS 同步组件总结 JVM (必看 ) Java 内存区域 JVM ...
  • asp.net知识库

    2015-06-18 08:45:45
    C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object pool 泛型技巧系列:泛型打造可复用的抽象工厂 体验.net2.0的优雅...
  • springmybatis

    2015-09-05 06:54:28
    1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的...
  • TEST VGA CARD GPUZ

    2011-10-25 09:27:20
    刻录软件,选择 映像刻录 方式来刻录ISO文件,刻录之前请先校验一下文件的准确性,刻录速度推荐24X! 请注意备份硬盘上重要资料。 安装前请确认该硬盘是否需要分区,如需要,请参考以下分区方法执行分区...
  • ◆免责条款: =================================================================...虚拟光驱软件加载本镜像ISO文件,打开我的电脑,会出现一个A:盘,打开A盘运行里面的 AUTORUN.EXE这个程序,在弹出的菜单中选第...
  • 《Effective c++ 》

    千次下载 热门讨论 2013-02-25 22:13:11
    为了对付这些改变,我把所有条款抹得一干二净,然后问自己“2005年什么是对C++ 程序员最重要的忠告?”答案便是第三版中的这些条款。本书有两个新章,一个是资源管理(resource management),一个是模板编程...

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

java笔记一般用什么软件

java 订阅