DataTable使用详解

/*

  • sDom

  • 默认值为lfrtip (when bJQueryUI is false) or <"H"lfr>t<"F"ip> (when bJQueryUI is true)

  • 该初始化属性用来指定你想把各种控制组件注入到dom节点的位置(比如你想把分页组件放到表格的顶部)

  • DIV元素(带或者不带自定的class)可以添加目标样式,下列语法被使用

  • 可供使用的选项

  •  'l' - 长度改变
    
  •  'f' - 过滤输入
    
  •  't' - 表格
    
  •  'i' - 信息
    
  •  'p' - 分页
    
  •  'r' - 处理
    
  • 可供使用的常量

  •  'H' - jQueryUI theme "header" classes('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
    
  •  'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
    
  • 需要的语法

  •  '<' 和 '>' - div元素
    
  •  '<"class" and '>' - 带有class属性的div元素
    
  •  '<"#id" and '>' - 带有id属性的div元素
    
  • 例子

  •  '<"wrapper"flipt>'
    
  •  '<lf<t>ip>'
    

*/

$(document).ready(function(){

$(‘#example’).dataTable( {

“sDom”: ‘<"top"i>rt<"bottom"flp><“clear”&lgt;’

});

});

/*

  • sPaginationType

  • 默认为two_button

  • DataTable内建了两种交互式分页策略,两个按钮和全页数,展现给终端用户不同的控制方式

  • 可以通过API增加策略

*/

$(document).ready(function(){

$(‘#example’).dataTable( {

“sPaginationType”: “full_numbers”

});

})

/*

  • sScrollXInner

  • 默认为空字符串,即:无效

  • 当横向滚动可用的时候,该属性可以用来强制DataTable的宽度比需要的更长

  • 比如你需要表格彼此相隔适宜,该变量可以用来使表格变大,而且强制滚动

  • 该该属性可以是css设置,或者一个数字(作为像素量度来使用)

*/

$(document).ready(function(){

$(‘#example’).dataTable( {

“sScrollX”: “100%”,

“sScrollXInner”: “110%”

});

});

/*

  • sServerMethod

  • 默认值为GET

  • 设置使用Ajax方式调用的服务器端的处理方法或者Ajax数据源的HTTP请求方式

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“bServerSide”: true,

“sAjaxSource”: “scripts/post.php”,

“sServerMethod”: “POST”

});

});

/------------------------------------------------Callback------------------------------------------------/

/*

  • fnCookieCallback

  • 无默认值

  • 当DataTable的状态保留可用时,自定义被保存的cookie和参数。只要cookie被修改就会调用此方法

  • 该方法需要返回一个格式良好的cookie字符串,注意数据对象是以Javascript对象的形式传递进来的,必须转换成字符串,例如JSON格式

*/

$(document).ready(function (){

$(‘#example’).dataTable({

“fnCookieCallback”: function (sName, oData, sExpires, sPath) {

// Customise oData or sName or whatever else here

return sName + “=”+JSON.stringify(oData)+“; expires=” + sExpires +“; path=” + sPath;

}

});

});

/*

  • fnCreatedRow

  • 无默认值

  • 当一个新的TR元素(并且所有TD子元素被插入)被创建或者被作为一个DOM资源被注册时调用该函数

  • 允许操作该TR元素

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“fnCreatedRow”: function( nRow, aData, iDataIndex ){

// Bold the grade for all ‘A’ grade browsers

if ( aData[4] == “A” )

{

$(‘td:eq(4)’, nRow).html( ‘A’ );

}

}

});

});

/*

  • fnDrawCallback

  • 无默认值

  • 每当draw事件发生时调用该函数,允许你动态编辑新建的dom对象的任何属性

*/

$(document).ready( function(){

$(‘#example’).dataTable({

“fnDrawCallback”: function(){

alert( ‘DataTables has redrawn the table’ );

}

});

});

/*

  • fnFooterCallback

  • 无默认值

  • 与fnHeaderCallback()完全相同,只是该函数允许你在每一个draw时间发生时修改页脚

*/

$(document).ready( function(){

$(‘#example’).dataTable({

“fnDrawCallback”: function() {

alert( ‘DataTables has redrawn the table’ );

}

});

});

/*

  • fnFormatNumber

  • 无默认值

  • 当渲染表格信息(例如:显示57条记录中的1-10条)中大的数字时

  • 为了方便用户,DataTable会使用逗号分割每千单位(例如1000000会被渲染为1,000,000)

  • 该函数会重写DataTable默认使用的策略

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“fnFormatNumber”: function ( iIn ) {

if ( iIn < 1000 ) {

return iIn;

} else {

var

s=(iIn+“”),

a=s.split(“”), out=“”,

iLen=s.length;

for ( var i=0 ; i<iLen ; i++ ) {

if ( i%3 === 0 && i !== 0 ) {

out = “'”+out;

}

out = a[iLen-i-1]+out;

}

}

return out;

};

});

});

/*

  • fnHeaderCallback

  • 无默认值

  • 每当draw事件发生时调用该函数,允许你动态编辑表头行,可以用来计算和展示关于表格的有用的信息

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“fnFormatNumber”: function ( iIn ) {

if ( iIn < 1000 ) {

return iIn;

} else {

var

s=(iIn+“”),

a=s.split(“”), out=“”,

iLen=s.length;

for ( var i=0 ; i<iLen ; i++ ) {

if ( i%3 === 0 && i !== 0 ) {

out = “'”+out;

}

out = a[iLen-i-1]+out;

}

}

return out;

};

});

});

/*

  • fnInfoCallback

  • 无默认值

  • 信息元素可以用来传输表格当前状态的信息,尽管DataTable提供的国际化的选项在处理大多数自定义情况时已经相当方便了

  • 或许你有时仍然希望自定义深层的字符串,该函数会满足你的需要

*/

$(‘#example’).dataTable( {

“fnInfoCallback”: function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {

return iStart +" to "+ iEnd;

}

});

/*

  • fnInitComplete

  • 无默认值

  • 当表格被初始化后调用该函数,通常DataTable会被持续初始化,并不需要该函数

  • 可是,当使用异步的XmlHttpRequest从外部获得语言信息时,初始化并不是持续的

*/

$(document).ready( function(){

$(‘#example’).dataTable({

“fnInitComplete”: function(oSettings, json) {

alert( ‘DataTables has finished its initialisation.’ );

}

});

})

/*

  • fnPreDrawCallback

  • 无默认值

  • 在每一个表格draw事件发生前调用该函数,通过返回false来取消draw事件

  • 其它任何的返回值,包括undefined都会导致draw事件的发生

*/

$(document).ready( function(){

$(‘#example’).dataTable({

“fnPreDrawCallback”: function( oSettings ) {

if ( $(‘#test’).val() == 1 ) {

return false;

}

}

});

});

/*

  • fnRowCallback

  • 无默认值

  • 你可以通过该函数在每一个表格绘制事件发生之后,渲染到屏幕上之前,向表格里的每一行传递’处理过程’

  • 该函数可以用来设置行的class名字等

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“fnRowCallback”: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {

// Bold the grade for all ‘A’ grade browsers

if ( aData[4] == “A” )

{

$(‘td:eq(4)’, nRow).html( ‘A’ );

}

}

});

});

/*

  • fnServerData

  • 无默认值

  • 你可以使用该参数重写从服务器获取数据的方法($.getJSON),从而使其更适合你的应用

  • 例如你可以使用POST方式提交,或者从Google Gears或者AIR数据库获取数据

*/

// POST data to server

$(document).ready(function(){

$(‘#example’).dataTable( {

“bProcessing”: true,

“bServerSide”: true,

“sAjaxSource”: “xhr.php”,

“fnServerData”: function ( sSource, aoData, fnCallback ) {

$.ajax( {

“dataType”: ‘json’,

“type”: “POST”,

“url”: sSource,

“data”: aoData,

“success”: fnCallback

} );

}

});

});

/*

  • fnServerParams

  • 无默认值

  • 用来在向服务器发送Ajax请求时发送额外的数据,例如自定义的过滤信息,该函数使向服务器发送额外参数变得简单

  • 传递进来的参数是DataTable建立的数据集合,你可以根据需要添加或者修改该集合

*/

$(document).ready(function(){

$(‘#example’).dataTable( {

“bProcessing”: true,

“bServerSide”: true,

“sAjaxSource”: “scripts/server_processing.php”,

“fnServerParams”: function ( aoData ) {

aoData.push( { “name”: “more_data”, “value”: “my_value” } );

}

});

});

/*

  • fnStateLoad

  • 无默认值

  • 加载表格状态,使用该函数你可以定义状态信息加载的位置和方式,默认情况下DataTable会从cookie中加载

  • 不过你或许希望使用本地存储(HTML5支持),或者服务端数据库

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateSave”: function (oSettings, oData) {

var o;

// Send an Ajax request to the server to get the data. Note that

// this is a synchronous request.

$.ajax( {

“url”: “/state_load”,

“async”: false,

“dataType”: “json”,

“success”: function (json) {

o = json;

}

} );

return o;

}

});

});

/*

  • fnStateLoadParams

  • 无默认值

  • 该回调可以用来在加载状态信息之前编辑状态信息

  • 函数在表格从存储的数据加载状态信息时调用,在表格<当前使用的设置对象>被<从保存信息中加载的设置对象>修改以前调用

  • 注意作为插件开发者,你应该使用’stateLoadParams’事件去加载plug-in的参数

*/

// Remove a saved filter, so filtering is never loaded

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateLoadParams”: function (oSettings, oData) {

oData.oFilter.sSearch = “”;

});

});

// Disallow state loading by returning false

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateLoadParams”: function (oSettings, oData) {

return false;

});

});

/*

  • fnStateLoaded

  • 无默认值

  • 在表格状态被状态存储方法读取和DataTable设置对象被修改时调用,作为被状态信息被加载的结果

*/

// Show an alert with the filtering value that was saved

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateLoaded”: function (oSettings, oData) {

alert( 'Saved filter was: '+oData.oFilter.sSearch );

});

});

/*

  • fnStateSave

  • 无默认值

  • 保存表格状态,使用该函数你可以定义状态信息保存的位置和方式,默认情况下DataTable会保存在cookie中

  • 不过你或许希望使用本地存储(HTML5支持),或者服务端数据库

*/

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateSave”: function (oSettings, oData) {

// Send an Ajax request to the server with the state object

$.ajax( {

“url”: “/state_save”,

“data”: oData,

“dataType”: “json”,

“method”: “POST”

“success”: function () {}

});

}

});

});

/*

  • fnStateSaveParams

  • 无默认值

  • 该回调允许你编辑被保存的状态信息,在表格改变了状态信息需要保存的时候调用

  • 可以使用该回调在保存状态信息的对象被保存以前对其进行修改,包括添加或者其它状态属性或者修改

*/

// Remove a saved filter, so filtering is never saved

$(document).ready(function(){

$(‘#example’).dataTable({

“bStateSave”: true,

“fnStateLoadParams”: function (oSettings, oData) {

oData.oFilter.sSearch = “”;

});

});

/------------------------------------------------Columns------------------------------------------------/

/*

  • aDataSort

  • 默认为null,自动使用列序号作为默认

  • 在排序一列的时候同时将其它几列也排序,例如名和姓作为多列排序

*/

// Using aoColumnDefs

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumnDefs”: [

{ “aDataSort”: [ 0, 1 ], “aTargets”: [ 0 ] },

{ “aDataSort”: [ 1, 0 ], “aTargets”: [ 1 ] },

{ “aDataSort”: [ 2, 3, 4 ], “aTargets”: [ 2 ] }

]

});

});

// Using aoColumns

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumns”: [

{ “aDataSort”: [ 0, 1 ] },

{ “aDataSort”: [ 1, 0 ] },

{ “aDataSort”: [ 2, 3, 4 ] },

null,

null

]

});

});

/*

  • asSorting

  • 默认为[ ‘asc’, ‘desc’ ]

  • 你可以通过该参数控制默认排序的方向,甚至改变排序处理器的行为(例如:只允许升序排序)

*/

// Using aoColumnDefs

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumnDefs”: [

{ “asSorting”: [ “asc” ], “aTargets”: [ 1 ] },

{ “asSorting”: [ “desc”, “asc”, “asc” ], “aTargets”: [ 2 ] },

{ “asSorting”: [ “desc” ], “aTargets”: [ 3 ] }

]

});

});

// Using aoColumns

$(document).ready(function(){

$(‘#example’).dataTable( {

“aoColumns”: [

null,

{ “asSorting”: [ “asc” ] },

{ “asSorting”: [ “desc”, “asc”, “asc” ] },

{ “asSorting”: [ “desc” ] },

null

]

});

});

/*

  • bSearchable

  • 默认为true

  • 是否在列上应用过滤

*/

// Using aoColumnDefs

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumnDefs”: [

{ “bSearchable”: false, “aTargets”: [ 0 ] }

]} );

});

// Using aoColumns

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumns”: [

{ “bSearchable”: false },

null,

null,

null,

null

] });

});

/*

  • bSortable

  • 默认为true

  • 是否在某一列上开启排序

*/

// Using aoColumnDefs

$(document).ready(function(){

$(‘#example’).dataTable({

“aoColumnDefs”: [

{ “bSortable”: false, “aTargets”: [ 0 ] }

] });

});

// Using aoColumns

$(document).ready(function(){

$(‘#example’).dataTable( {

“aoColumns”: [

{ “bSortable”: false },

null,

null,

null,

null

] });

});

/*

  • bUseRendered

  • 默认为true

  • 当对一列使用使用fnRender时,你或许希望使用原始的数据(渲染以前)去排序或者过滤(默认是使用用户看到的渲染过的数据)

  • 或许对日期类型有些用处,注意,现在建议使用mDataProp作为函数并且使用该函数提供的type参数,来允许不同的数据被用来排序,过滤,展现和类型检测

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{

“fnRender”: function ( oObj ) {

return oObj.aData[0] +’ '+ oObj.aData[3];

},

“bUseRendered”: false,

“aTargets”: [ 0 ]

}

]

} );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{

“fnRender”: function ( oObj ) {

return oObj.aData[0] +’ '+ oObj.aData[3];

},

“bUseRendered”: false

},

null,

null,

null,

null

]

} );

} );

/*

  • bVisible

  • 默认值为true

  • 是否展示某一列

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{ “bVisible”: false, “aTargets”: [ 0 ] }

] } );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{ “bVisible”: false },

null,

null,

null,

null

] } );

} );

/*

  • fnCreatedCell

  • 无默认值

  • 每当新的单元格被建立(Ajax源等)或者处理输入(DOM源)时,开发者可定义的函数会被调用

  • 该属性用作fnRender的补充来允许你修改在fnRender函数调用之后新建的DOM元素(例如增加背景颜色)

  • nTd:TD元素, sData:单元格的值, oData:单元格所在的行值, iRow:当前页面显示行的索引, iCol:当前所在列的索引

*/

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [ {

“aTargets”: [3],

“fnCreatedCell”: function (nTd, sData, oData, iRow, iCol) {

if ( sData == “1.7” ) {

$(nTd).css(‘color’, ‘blue’)

}

}

} ]

});

} );

/*

  • fnRender

  • 无默认值

  • 自定义列中每个单元格被展示的时候调用的展示函数

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{

“fnRender”: function ( o, val ) {

return o.aData[0] +’ '+ o.aData[3];

},

“aTargets”: [ 0 ]

}

]

} );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{ “fnRender”: function ( o, val ) {

return o.aData[0] +’ '+ o.aData[3];

} },

null,

null,

null,

null

]

} );

} );

/*

  • iDataSort

  • 默认值为-1,使用自动计算的列标

  • 当选择该列进行排序的时候,你希望调用排序操作的列的列号,该参数可以用来按隐藏列排序

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{ “iDataSort”: 1, “aTargets”: [ 0 ] }

]

} );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{ “iDataSort”: 1 },

null,

null,

null,

null

]

} );

} );

/*

  • mDataProp

  • 默认为null,使用自动计算的列标

  • 该属性可以从任何JSON格式数据源读取属性,包括深层网状的对象和属性,

  • 有几种不同的传递方式可以影响mDataProp的行为

  • 整型:被当作数据源的数组下表,是DataTable使用的默认行为(每列递增)

  • 字符串类型:被当作从数据源获取的对象的属性名,注意你可以使用Javascript点号访问符去访问深层次的属性或数组

  • null:sDafaultContent选项会被使用到单元格上,(默认是空字符串,当生成可编辑列、可删除列的时候可以使用该属性)

  • 函数:当表格获取或者设置单元格时被调用的函数,函数有三个参数

  •  {array|object}:该行的数据源
    
  •  {string}:调用数据请求的类型,设置数据时是'set',收集数据时是'filter','display','type','sort'
    
  •  {*}:当第二个参数是set的时候,要被设置的数据
    
  •  当类型是'set'的时候,该函数不需要返回一个值,除此之外,返回值是可以用来请求数据的
    

*/

// Read table data from objects

$(document).ready(function() {

var oTable = $(‘#example’).dataTable( {

“sAjaxSource”: “sources/deep.txt”,

“aoColumns”: [

{ “mDataProp”: “engine” },

{ “mDataProp”: “browser” },

{ “mDataProp”: “platform.inner” },

{ “mDataProp”: “platform.details.0” },

{ “mDataProp”: “platform.details.1” }

]

} );

} );

// Using mDataProp as a function to provide different information for

// sorting, filtering and display. In this case, currency (price)

$(document).ready(function() {

var oTable = $(‘#example’).dataTable( {

“aoColumnDefs”: [

{

“aTargets”: [ 0 ],

“mDataProp”: function ( source, type, val ) {

if (type === ‘set’) {

source.price = val;

// Store the computed dislay and filter values for efficiency

source.price_display = val==“” ? “” : “$”+numberFormat(val);

source.price_filter = val==“” ? “” : “$”+numberFormat(val)+" "+val;

return;

}

else if (type === ‘display’) {

return source.price_display;

}

else if (type === ‘filter’) {

return source.price_filter;

}

// ‘sort’ and ‘type’ both just use the integer

return source.price;

}

]

} );

} );

/*

  • sClass

  • 默认值为空字符串

  • 该列的每一个单元格被赋予的class

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{ “sClass”: “my_class”, “aTargets”: [ 0 ] }

]

} );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{ “sClass”: “my_class” },

null,

null,

null,

null

]

} );

} );

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

中高级Java开发面试高频考点题笔记300道.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

架构进阶面试专题及架构学习笔记脑图

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

Java架构进阶学习视频分享
]

} );

} );

/*

  • sClass

  • 默认值为空字符串

  • 该列的每一个单元格被赋予的class

*/

// Using aoColumnDefs

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumnDefs”: [

{ “sClass”: “my_class”, “aTargets”: [ 0 ] }

]

} );

} );

// Using aoColumns

$(document).ready(function() {

$(‘#example’).dataTable( {

“aoColumns”: [

{ “sClass”: “my_class” },

null,

null,

null,

null

]

} );

} );

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-OhLgujTq-1711203660362)]

[外链图片转存中…(img-MsTCVUPO-1711203660362)]

[外链图片转存中…(img-3usxn7rD-1711203660363)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

[外链图片转存中…(img-Gh5Dl1DQ-1711203660363)]

中高级Java开发面试高频考点题笔记300道.pdf

[外链图片转存中…(img-U0x6IJ7G-1711203660363)]

架构进阶面试专题及架构学习笔记脑图

[外链图片转存中…(img-vnn37zkb-1711203660363)]

Java架构进阶学习视频分享
需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值