DOCTYPE html >
< html >
< head >
< meta http-equiv =Content-Type content ="text/html; charset=gb2312" >
< meta charset ="utf-8" />
< title > JS计算器,贷款利率计算器title >
< style > /* 这是一个CSS样式表:定义了程序输出的样式 */
body { font-size : 12px ; }
#payment { } /* 定义 id="payment" 的元素样式 */
#graph { border : solid black 1px ; } /* 图表有一个1像素的边框 */
th, td { vertical-align : top ; } /* 表格单元格对齐方式为顶端对齐 */
table {
border-collapse : collapse ;
border : none ;
}
td, th {
border : solid #000 1px ;
}
.output { font-weight : bold ; } /* 计算结果定义为粗体 */
.btn {
font-weight : 700 ;
line-height : 30px ;
width : 100px ;
height : 35px ;
}
.tbl {
width : 95% ;
}
.td1 {
width : 70px
}
.td2 {
width : 140px
}
.help
{
float : right ;
cursor : pointer ;
line-height : 10px ;
margin-top : -6px ;
margin-right : -6px ;
}
.nr {
color : #666 ;
font-size : 12px ;
padding-top : 0px ;
margin : 8px -2px -2px ;
}
.tsk {
background : #f8f8f8 ;
border : 1px solid #CCC ;
box-shadow : 0 1px 5px #DDD ;
line-height : 20px ;
padding : 10px ;
position : absolute ;
display : none ;
z-index : 10000 ;
width : 215px ;
left : 1px ;
top : 16px
}
.circle {
width : 15px ;
height : 15px ;
font-weight : 700 ;
text-indent : 4px ;
cursor : pointer ;
float : left ;
line-height : 16px ;
background : #5A8BDC ;
-moz-border-radius : 50px ;
-webkit-border-radius : 50px ;
border-radius : 50px ;
}
.resultInfo {
font-weight : normal ;
font-size : 10px ;
color : red ;
}
style >
< script >
function $(id){ return document.getElementById(id); }
function helpClick(obj)
{
$(obj.id + " _help " ).style.display = " block " ;
}
function hidHelp(obj)
{
obj.parentElement.style.display = " none " ;
}
function Test()
{
var t1 = document.createElement( " table " );
t1.width = " 100% " ;
t1.insertRow();
t1.rows[ 0 ].innerHTML = " 期次 本金 利息 月供 剩余贷款 " ;
/*
t1.insertRow();
t1.rows[t1.rows.length-1].insertCell();
t1.rows[t1.rows.length-1].insertCell();
t1.rows[t1.rows.length-1].insertCell();
t1.rows[t1.rows.length-1].cells[0].innerHTML = 1;
t1.rows[t1.rows.length-1].cells[1].innerHTML = 2;
t1.rows[t1.rows.length-1].cells[2].innerHTML = 3;
*/
// t1.rows[t1.rows.length-1].insertCell()
// tab.appendChild("1 2 ");
// tab.appendChild(t1);
// alert(newRow.cells.length);
// div.appendChild(table);
// cell.innerHTML = '';
// StringBuilder html = new StringBuilder("");
// document.getElementById('zhutiTable').appendChild(t);
// 查找文档中用于输入输出的元素
var amount = document.getElementById( " amount " ); // 贷款总额
var apr = document.getElementById( " apr " ); // 年利息
var years = document.getElementById( " years " ); // 偿还期限
var zipcode = document.getElementById( " zipcode " ); // 邮政编码(查找放贷人)
var payment = document.getElementById( " payment " ); // 月还贷款额
var total = document.getElementById( " total " ); // 还贷款总额
var totalinterest = document.getElementById( " totalinterest " ); // 贷款总利息
// 假设所有的输入都是合法的,将从input元素中获取输入数据
// 将百分比格式转换为小数格式,并从年利率转换为月利率
// 将年度赔付转换为月度赔付
var principal = parseFloat(amount.value);
var interest = parseFloat(apr.value) / 100 / 12 ;
var payments = parseFloat(years.value) * 12 ;
// 现在计算月度赔付的数据
var x = Math.pow( 1 + interest, payments); // Math.pow()进行幂次运算
var monthly = (principal * x * interest) / (x-1);
// 月还款额=贷款金额*年利率/12*(1+年利率/12)^(年期*12)/((1+年利率/12)^(年期*12)-1)
var yue = principal * (interest) * x / (Math.pow(1+interest,payments)-1);
var shy = principal;
for (i = 0 ;i < payments;i ++ ){
// 第N月本金: 月还款额=(1+年利率/12)^(N-1-年期*12)
var y_bj = Math.pow(interest + 1 ,i - payments)
// 第N月利息: 月还款额=(1-(1+年利率/12)^(N-1-年期*12))
var y_lx = 1 - Math.pow( 1 + interest,i - payments);
t1.insertRow(t1.rows.length);
t1.rows[t1.rows.length - 1 ].insertCell();
t1.rows[t1.rows.length - 1 ].insertCell();
t1.rows[t1.rows.length - 1 ].insertCell();
t1.rows[t1.rows.length - 1 ].insertCell();
t1.rows[t1.rows.length - 1 ].insertCell();
t1.rows[t1.rows.length - 1 ].cells[ 0 ].innerHTML = i + 1 ;
t1.rows[t1.rows.length - 1 ].cells[ 1 ].innerHTML = (monthly * y_bj).toFixed( 2 );
t1.rows[t1.rows.length - 1 ].cells[ 2 ].innerHTML = (monthly * y_lx).toFixed( 2 );
t1.rows[t1.rows.length - 1 ].cells[ 3 ].innerHTML = monthly.toFixed( 2 );
t1.rows[t1.rows.length - 1 ].cells[ 4 ].innerHTML = (principal -= (monthly * y_bj)).toFixed( 2 );
}
var tr = $( " tr_tab " );
tr.cells[ 0 ].innerHTML = t1.outerHTML;
}
script >
head >
< body >
< table id ="t_main" width =500px >
< tbody >
< tr >
< th colspan =2 style ="text-align:left;font-size:24px;background-color:#3f3" > 输入数据:th >
tr >
< tr >
< td width =100px >
贷款总金额:td >
< td >< input id ="amount" value ="500000" />< span style ="margin-left:-18px" > 元span > td >
tr >
< tr >
< td >
基准年利率:td >
< td >< input id ="apr" value ="3.5" />< span style ="margin-left:-14px" > %span > td >
tr >
< td >
利率折扣: td >
< td >
< select id =llzk style ="width:173px;" >
< option value ="2.0" > 基准利率2倍option >
< option value ="1.5" > 基准利率1.5倍option >
< option value ="1.4" > 基准利率1.4倍option >
< option value ="1.3" > 基准利率1.3倍option >
< option value ="1.2" > 基准利率1.2倍option >
< option value ="1.1" > 基准利率1.1倍option >
< option value ="1.05" > 基准利率1.05倍option >
< option value ="1.0" selected =true > 基准利率option >
< option value ="0.95" > 基准利率9.5折option >
< option value ="0.9" > 基准利率9折option >
< option value ="0.88" > 基准利率8.8折option >
< option value ="0.85" > 基准利率8.5折option >
< option value ="0.83" > 基准利率8.3折option >
< option value ="0.8" > 基准利率8折option >
< option value ="0.75" > 基准利率7.5折option >
< option value ="0.7" > 基准利率7折option >
select >
td >
tr >
< tr >
< td >
贷款期限:td >
< td >< input id ="years" value ="30" />< span style ="margin-left:-18px" > 年span > td >
tr >
< tr style ="display:none" >
< td >
邮政编码(查找放贷人):td >
< td >< input id ="zipcode" />
< span id ="lenders" > span >
td >
tr >
< tr >
< th colspan =2 >
< input class ="btn" type =button onclick ="calculate();" value ="计 算" />
< input class ="btn" type =button onclick ="Test();" value ="测 试" />
< input class ="btn" type =reset value ="重 置" />
th >
tr >
< tr >
< th colspan =2 style ="text-align:left;font-size:24px;background-color:#3f3" >
输出结果:< span class ="resultInfo" > 此结果仅供参考,实际应缴费以当地为准span >
th >
tr >
< tr >
< td >
每月付款:td >
< td >
< input id ="payment" value ="30" />
td >
tr >
< tr >
< td >
付款总额:td >
< td >< span class ="output" id ="total" > 0span > td >
tr >
< tr >
< td >
利息总额:td >
< td >< span class ="output" id ="totalinterest" > 0span > td >
tr >
< tr >
< td colspan ="2" >
< table id ="result" style ="width:100%" >
< tbody >
< tr >
< td style ="position:relative;width:50%;" >
< div >
< span style ="float:left" > 每月等额还款span >
< div class ="circle" onclick ="helpClick(this)" id ="debxhk" > ?div >
div >
< div class ="tsk" id ="debxhk_help" >
< div onclick ="hidHelp(this)" class ="help" > Xdiv >
< div class ="nr" >
每月等额还款即等额本息还款法,指借款人每月按相等的金额偿还贷款本息,其中每月贷款利息按月初剩余贷款本金计算并逐月结清。
div >
div >
< table style ="clear:both" cellpadding ="0" cellspacing ="0" class ="tbl" >
< tbody >
< tr >
< td class ="td1" > 贷款总额td >
< td class ="td2" >< var id ="_debx_dkze" > 0var > 元td >
tr >
< tr >
< td class ="td1" > 还款月数td >
< td class ="td2" >< var id ="_debx_hkys" > 0var > 月td >
tr >
< tr >
< td class ="td1" > 首月还款td >
< td class ="td2" >< em id ="_debx_syhk" > 0em > 元td >
tr >
< tr >
< td class ="td1" > 每月递减td >
< td class ="td1" >< em id ="_debj_mydj" > 0em > 元td >
tr >
< tr >
< td class ="td1" > 总付利息td >
< td class ="td2" >< em id ="_debx_zflx" > 0em > 元td >
tr >
< tr >
< td class ="td1" > 本息合计td >
< td class ="td2" >< em id ="_debx_bxhj" > 1,039,024.42em > 元td >
tr >
tbody >
table >
td >
< td style ="position:relative" >
< div >
< span style ="float:left" > 逐月递减还款span >
< div onclick ="helpClick(this)" class ="circle" id ="debjhk" > ?div >
div >
< div class ="tsk" id ="debjhk_help" >
< div onclick ="hidHelp(this)" class ="help" > Xdiv >
< div class ="nr" >
逐月递减还款即等额本金还款法,指本金保持相同,利息逐月递减,月还款数递减;由于每月的还款本金额固定,而利息越来越少,贷款人起初还款压力较大,但是随时间的推移每月还款数也越来越少。
div >
div >
< table style ="clear:both" cellpadding ="0" cellspacing ="0" class ="tbl" >
< tbody >
< tr >
< td class ="td1" > 贷款总额td >
< td class ="td2" >< var id ="_debj_dkze" > 0var > 元td >
tr >
< tr >
< td class ="td1" > 还款月数td >
< td class ="td2" >< var id ="_debj_hkys" > 0var > 月td >
tr >
< tr >
< td class ="td1" > 首月还款td >
< td class ="td2" >< em id ="_debj_syhk" > 0em > 元
td >
tr >
< tr >
< td class ="td1" > 每月递减td >
< td class ="td1" >< em id ="_debj_mydj" > 0em > 元td >
tr >
< tr >
< td class ="td1" > 总付利息td >
< td class ="td2" >< em id ="_debj_zflx" > 0em > 元td >
tr >
< tr >
< td class ="td1" > 本息合计td >
< td class ="td2" >< em id ="_debj_bxhj" > 1,039,024.42em > 元td >
tr >
tbody >
table > td >
tr >
< tr style ="display:none" >
< td colspan ="2" >
< span class ="resultInfo" > 此结果仅供参考,实际应缴费以当地为准span >
td >
tr >
tbody >
table >
td >
tr >
< tr >
< td colspan =2 >< span style ="font-weight:bold;" > 图表:贷款金额,累计金额,利息支付span > td >
tr >
< tr >
< td colspan ="2" >
< canvas id ="graph" width ="500" height ="250" > canvas >
td >
tr >
< tr id ="tr_tab" >
< td colspan ="2" >
td >
tr >
tbody >
table >
< div id ="list" > div >
< script >
function calculate() {
// 生成每月还款额表格
Test();
// 查找文档中用于输入输出的元素
var amount = document.getElementById( " amount " ); // 贷款总额
var apr = document.getElementById( " apr " ); // 年利息
var years = document.getElementById( " years " ); // 偿还期限
var zipcode = document.getElementById( " zipcode " ); // 邮政编码(查找放贷人)
var payment = document.getElementById( " payment " ); // 月还贷款额
var total = document.getElementById( " total " ); // 还贷款总额
var totalinterest = document.getElementById( " totalinterest " ); // 贷款总利息
// 假设所有的输入都是合法的,将从input元素中获取输入数据
// 将百分比格式转换为小数格式,并从年利率转换为月利率
// 将年度赔付转换为月度赔付
var principal = parseFloat(amount.value);
var interest = parseFloat(apr.value) / 100 / 12 ;
var payments = parseFloat(years.value) * 12 ;
// 现在计算月度赔付的数据
var x = Math.pow( 1 + interest, payments); // Math.pow()进行幂次运算
var monthly = (principal * x * interest) / (x-1);
// 月还款额=贷款金额*年利率/12*(1+年利率/12)^(年期*12)/((1+年利率/12)^(年期*12)-1)
var yue = principal * (interest) * x / (Math.pow(1+interest,payments)-1)
// 第N月本金: 月还款额=(1+年利率/12)^(N-1-年期*12)
var y_bj = Math.pow(interest + 1 , - payments)
// 第N月利息: 月还款额=(1-(1+年利率/12)^(N-1-年期*12))
var y_lx = 1 - Math.pow( 1 + interest, - payments)
// 如果结果没有超过JavaScript能表示的数字范围,且用户的输入也正确
// 这里所展示的结果就是合法的
if (isFinite(monthly)) {
// 将数据填充至输出字段的位置,四舍五入到小数点后两位数字
// payment.innerHTML = monthly.toFixed(2);
payment.value = monthly.toFixed( 2 );
total.innerHTML = (monthly * payments).toFixed( 2 );
totalinterest.innerHTML = ((monthly * payments) - principal).toFixed( 2 );
// 将用户的输入数据保存下来,这样在下次访问时也能取到数据
save(amount.value, apr.value, years.value, zipcode.value);
// 找到并展示本地放贷人,但忽略网络错误
try { // 捕获这段代码抛出的所有异常
getLenders(amount.value, apr.value, years.value, zipcode.value);
}
catch (e) { /* 忽略这些异常 */ }
// 最后,用图表展示贷款余额、利息和资产收益
chart(principal, interest, monthly, payments);
}
else {
// 计算结果不是数字或者是无穷大,意味着输入数据是非法或不完整的
// 清空之前的输出数据
payment.innerHTML = "" ; // 清空元素的文本内容
total.innerHTML = ""
totalinterest.innerHTML = "" ;
chart(); // 不传参数的话就是清除图表
}
}
// 将用户的输入保存至localStorage对象的属性中
// 这些属性在再次访问时还会继续保持在原位置
// 如果你在浏览器中按照file:// URL的方式直接打开本地文件,
// 则无法在某些浏览器中使用存储功能(比如FireFox)
// 而通过HTTP打开文件是可行的
function save(amount, apr, years, zipcode) {
if (window.localStorage) { // 只有在浏览器支持的时候才运行这里的代码
localStorage.loan_amount = amount;
localStorage.loan_apr = apr;
localStorage.loan_years = years;
localStorage.loan_zipcode = zipcode;
}
}
// 在文档首次加载时,将会尝试还原输入字段
window.onload = function () {
// 如果浏览器支持本地存储并且上次保存的值是存在的
if (window.localStorage && localStorage.loan_amount) {
document.getElementById( " amount " ).value = localStorage.loan_amount;
document.getElementById( " apr " ).value = localStorage.loan_apr;
document.getElementById( " years " ).value = localStorage.loan_years;
document.getElementById( " zipcode " ).value = localStorage.loan_zipcode;
}
};
// 将用户的输入发送至服务器端脚本(理论上)将
// 返回一个本地放贷人的链接列表,在这个例子中并没有实现这种查找放贷人的服务
// 但如果该服务存在,该函数会使用它
function getLenders(amount, apr, years, zipcode) {
// 如果浏览器不支持XMLHttpRequest对象,则退出
if ( ! window.XMLHttpRequest) return ;
// 找到要显示放贷人列表的元素
var ad = document.getElementById( " lenders " );
if ( ! ad) return ; // 如果返回为空,则退出
// 将用户的输入数据进行URL编码,并作为查询参数附加在URL里
var url = " getLenders.php " + // 处理数据的URL地址
" ?amt= " + encodeURIComponent(amount) + // 使用查询串中的数据
" &apr= " + encodeURIComponent(apr) +
" &yrs= " + encodeURIComponent(years) +
" &zip= " + encodeURIComponent(zipcode);
// 通过XMLHttpRequest对象来提取返回数据
var req = new XMLHttpRequest(); // 发起一个新的请求
req.open( " GET " , url); // 通过URL发起一个HTTP GET请求
req.send( null ); // 不带任何正文发送这个请求
// 在返回数据之前,注册了一个事件处理函数,这个处理函数
// 将会在服务器的响应返回至客户端的时候调用
// 这种异步编程模式在客户端JavaScript中是非常常见的
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200 ) {
// 如果代码运行到这里,说明我们得到了一个合法且完整的HTTP响应
var response = req.responseText; // HTTP响应是以字符串的形式呈现的
var lenders = JSON.parse(response); // 将其解析为JS数组
// 将数组中的放贷人对象转换为HTML字符串形式
var list = "" ;
for ( var i = 0 ; i < lenders.length; i ++ ) {
list += " " +
lenders[i].name + " " ;
}
// 将数据在HTML元素中呈现出来
ad.innerHTML = " " + list + " " ;
}
}
}
// 在HTML元素中用图表展示月度贷款余额、利息和资产收益
// 如果不传入参数的话,则清空之前的图表数据
// principal:贷款金额
// interest:利息
// monthly:每月还款额
// payments:还款期限
function chart(principal, interest, monthly, payments) {
var graph = document.getElementById( " graph " ); // 得到标签
graph.width = graph.width; // 用一种巧妙的手法清除并重置画布
// 如果不传入参数,或者浏览器不支持画布,则直接返回
if (arguments.length == 0 || ! graph.getContext) return ;
// 获得画布元素的"context"对象,这个对象定义了一组绘画API
var g = graph.getContext( " 2d " ); // 所有的绘画操作都将基于这个对象
var width = graph.width, height = graph.height; // 获得画布大小
// 这里的函数作用是将付款数字的数据转换为像素
function paymentToX(n) { return n * width / payments; }
function amountToY(a) { return height - (a * height / (monthly*payments*1.05));}
// 总付款数据是一条从(0,0)到(payments, monthly*payments)的直线
g.moveTo(paymentToX( 0 ), amountToY( 0 )); // 从左下方开始
g.lineTo(paymentToX(payments),amountToY(monthly * payments)); // 绘至右上方
g.lineTo(paymentToX(payments), amountToY( 0 )); // 再至右下方
g.closePath(); // 将结尾连接至开头
g.fillStyle = " #f88 " ; // 亮红色
g.fill(); // 填充矩形
g.font = " bold 12px sans-serif " ; // 定义一种字体
g.fillText( " 总支出 " , 15 , 20 ); // 将文字绘制到图例中
// 总贷款额的还款进度,很多资产数据并不是线性的,很难将其反映至图表中
var equity = 0 ;
g.beginPath(); // 开始绘制新图形
g.moveTo(paymentToX( 0 ), amountToY( 0 )); // 从左下方开始
for ( var p = 1 ; p <= payments; p ++ ) { // 计算出每一笔赔付的利息
var thisMonthsInterest = (principal - equity) * interest;
equity += (monthly - thisMonthsInterest); // 得到资产额
g.lineTo(paymentToX(p),amountToY(equity)); // 将数据绘制到画布上
}
g.lineTo(paymentToX(payments), amountToY( 0 )); // 将数据线绘制至X轴
g.closePath(); // 将线条结尾连接至线条开头
g.fillStyle = " #78E682 " ; // 使用绿色绘制图形
g.fill(); // 曲线之下的部分均填充
g.fillText( " 贷款数额 " , 60 , 20 ); // 文本颜色设置为绿色
// 余额,再次循环,余额数据显示为黑色粗线条
var bal = principal;
g.beginPath();
g.moveTo(paymentToX( 0 ),amountToY(bal));
for ( var p = 1 ; p <= payments; p ++ ) {
var thisMonthsInterest = bal * interest;
bal -= (monthly - thisMonthsInterest); // 得到资产额
g.lineTo(paymentToX(p),amountToY(bal)); // 将直线连接至某点
}
g.lineWidth = 2 ; // 将直线宽度加粗
g.strokeStyle = " #E422CB " ; // 绘制线条的颜色
g.stroke(); // 绘制余额的曲线
g.fillStyle = " black " ; // 使用黑色字体
g.fillText( " 贷款余额 " , 120 , 20 ); // 图例文字
// 将年度数据在X轴做标记
g.textAlign = " center " ; // 文字居中对齐
var y = amountToY( 0 ); // Y坐标设为0
for ( var year = 1 ; year * 12 <= payments; year ++ ) { // 遍历每年
var x = paymentToX(year * 12 ); // 计算标记位置
g.fillRect(x - 0.5 ,y - 3 , 1 , 3 ); // 开始绘制标记
if (year == 1 ) g.fillText( " 1年 " , x, y - 5 ); // 在坐标轴做标记
if (year % 5 == 0 && year * 12 !== payments) // 每5年的数据
g.fillText(String(year) + " 年 " , x, y - 5 );
}
// 将赔付数额标记在右边界
g.textAlign = " right " ; // 文字右对齐
g.textBaseline = " middle " ; // 文字垂直居中
var ticks = [monthly * payments, principal]; // 我们将要用到的两个点
var rightEdge = paymentToX(payments); // 设置X坐标
for ( var i = 0 ; i < ticks.length; i ++ ) { // 对每两个点做循环
var y = amountToY(ticks[i]); // 计算每个标记的Y坐标
g.fillRect(rightEdge - 3 , y - 0.5 , 5 , 1 ); // 绘制标记
g.fillText(String(ticks[i].toFixed( 0 )),rightEdge - 5 , y); // 绘制文本
}
g.textAlign = " left " ;
g.fillRect( 0 , y - 0.5 , 6 , 1 ); // 绘制标记
g.fillText(String(principal), 15 , y); // 绘制文本
}
script >
body >
html >
View Code
==
==
转载于:https://www.cnblogs.com/mq0036/p/5209823.html
你可能感兴趣的:(银行利息计算公式推导(存款,贷款))
机器学习与深度学习间关系与区别
ℒℴѵℯ心·动ꦿ໊ོ꫞
人工智能 学习 深度学习 python
一、机器学习概述定义机器学习(MachineLearning,ML)是一种通过数据驱动的方法,利用统计学和计算算法来训练模型,使计算机能够从数据中学习并自动进行预测或决策。机器学习通过分析大量数据样本,识别其中的模式和规律,从而对新的数据进行判断。其核心在于通过训练过程,让模型不断优化和提升其预测准确性。主要类型1.监督学习(SupervisedLearning)监督学习是指在训练数据集中包含输入
ArcGIS栅格计算器常见公式(赋值、0和空值的转换、补充栅格空值)
研学随笔
arcgis 经验分享
我们在使用ArcGIS时通常经常用到栅格计算器,今天主要给大家介绍我日常中经常用到的几个公式,供大家参考学习。将特定值(-9999)赋值为0,例如-9999.Con("raster"==-9999,0,"raster")2.给空值赋予特定的值(如0)Con(IsNull("raster"),0,"raster")3.将特定的栅格值(如1)赋值为空值,其他保留原值SetNull("raster"==
每日一题——第九十题
互联网打工人no1
C语言程序设计每日一练 c语言
题目:判断子串是否与主串匹配#include#include#include//////判断子串是否在主串中匹配//////主串///子串///boolisSubstring(constchar*str,constchar*substr){intlenstr=strlen(str);//计算主串的长度intlenSub=strlen(substr);//计算子串的长度//遍历主字符串,对每个可能得
509. 斐波那契数(每日一题)
lzyprime
lzyprime博客(github)创建时间:2021.01.04qq及邮箱:2383518170leetcode笔记题目描述斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给你n,请计算F(n)。示例1:输入:2输出:1解释:F(2)=F(1)+
398顺境,逆境
戴骁勇
2018.11.27周二雾霾最近儿子进入了一段顺境期,今天表现尤其不错。今天的数学测试成绩喜人,没有出现以往的计算错误,整个卷面书写工整,附加题也在规定时间内完成且做对。为迎接体育测试的锻炼有了质的飞跃。坐位体前屈成绩突飞猛进,估测成绩能达到12cm,这和上次测试的零分来比,简直是逆袭。儿子还在不断锻炼和提升,唯恐到时候掉链子。跑步姿势在我的调教下,逐渐正规起来,速度随之也有了提升。今晚测试的50
在一台Ubuntu计算机上构建Hyperledger Fabric网络
落叶无声9
区块链 超级账本 Hyperledger fabric 区块链 ubuntu 构建 hyperledger fabric
在一台Ubuntu计算机上构建HyperledgerFabric网络Hyperledgerfabric是一个开源的区块链应用程序平台,为开发基于区块链的应用程序提供了一个起点。当我们提到HyperledgerFabric网络时,我们指的是使用HyperledgerFabric的正在运行的系统。即使只使用最少数量的组件,部署Fabric网络也不是一件容易的事。Fabric社区创建了一个名为Cello
GitHub上克隆项目
bigbig猩猩
github
从GitHub上克隆项目是一个简单且直接的过程,它允许你将远程仓库中的项目复制到你的本地计算机上,以便进行进一步的开发、测试或学习。以下是一个详细的步骤指南,帮助你从GitHub上克隆项目。一、准备工作1.安装Git在克隆GitHub项目之前,你需要在你的计算机上安装Git工具。Git是一个开源的分布式版本控制系统,用于跟踪和管理代码变更。你可以从Git的官方网站(https://git-scm.
Day1笔记-Python简介&标识符和关键字&输入输出
~在杰难逃~
Python python 开发语言 大数据 数据分析 数据挖掘
大家好,从今天开始呢,杰哥开展一个新的专栏,当然,数据分析部分也会不定时更新的,这个新的专栏主要是讲解一些Python的基础语法和知识,帮助0基础的小伙伴入门和学习Python,感兴趣的小伙伴可以开始认真学习啦!一、Python简介【了解】1.计算机工作原理编程语言就是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作,编程
121. 买卖股票的最佳时机
薄荷糖的味道_fb40
给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入:[7,1,5,3,6,4]输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。注意利润不能是7-1=6,因为卖出价格需要大于买入价格。示例2:输入:
Redis系列:Geo 类型赋能亿级地图位置计算
Ly768768
redis bootstrap 数据库
1前言我们在篇深刻理解高性能Redis的本质的时候就介绍过Redis的几种基本数据结构,它是基于不同业务场景而设计的:动态字符串(REDIS_STRING):整数(REDIS_ENCODING_INT)、字符串(REDIS_ENCODING_RAW)双端列表(REDIS_ENCODING_LINKEDLIST)压缩列表(REDIS_ENCODING_ZIPLIST)跳跃表(REDIS_ENCODI
k均值聚类算法考试例题_k均值算法(k均值聚类算法计算题)
寻找你83497
k均值聚类算法考试例题
?算法:第一步:选K个初始聚类中心,z1(1),z2(1),…,zK(1),其中括号内的序号为寻找聚类中心的迭代运算的次序号。聚类中心的向量值可任意设定,例如可选开始的K个.k均值聚类:---------一种硬聚类算法,隶属度只有两个取值0或1,提出的基本根据是“类内误差平方和最小化”准则;模糊的c均值聚类算法:--------一种模糊聚类算法,是.K均值聚类算法是先随机选取K个对象作为初始的聚类
Python开发常用的三方模块如下:
换个网名有点难
python 开发语言
Python是一门功能强大的编程语言,拥有丰富的第三方库,这些库为开发者提供了极大的便利。以下是100个常用的Python库,涵盖了多个领域:1、NumPy,用于科学计算的基础库。2、Pandas,提供数据结构和数据分析工具。3、Matplotlib,一个绘图库。4、Scikit-learn,机器学习库。5、SciPy,用于数学、科学和工程的库。6、TensorFlow,由Google开发的开源机
Shell、Bash、Zsh这都是啥啊
小白码上飞
bash linux 开发语言
Zsh和Bash都是我们常用的Shell,那先搞明白啥是shell吧。Shell作为一个单词,他是“壳”的意思,蛋壳坚果壳。之所以叫壳,是为了和计算机的“核”来区分,用它表示“为使用者提供的操作界面”。所以这个命名其实很形象,翻译成中文,直译过来叫“壳层”。个人认为这个叫法很奇怪,意译貌似也没有什么好的词汇来匹配。就还是叫shell吧。维基百科给的定义是:Incomputing,ashellisa
ExpRe[25] bash外的其它shell:zsh和fish
tritone
ExpRe bash linux ubuntu shell
文章目录zsh基础配置实用特性插件`autojump`语法高亮自动补全fish优点缺点时效性本篇撰写时间为2021.12.15,由于计算机技术日新月异,博客中所有内容都有时效和版本限制,具体做法不一定总行得通,链接可能改动失效,各种软件的用法可能有修改。但是其中透露的思想往往是值得学习的。本篇前置:ExpRe[10]Ubuntu[2]准备神秘软件、备份恢复软件https://www.cnblogs
简单了解 JVM
记得开心一点啊
jvm
目录♫什么是JVM♫JVM的运行流程♫JVM运行时数据区♪虚拟机栈♪本地方法栈♪堆♪程序计数器♪方法区/元数据区♫类加载的过程♫双亲委派模型♫垃圾回收机制♫什么是JVMJVM是JavaVirtualMachine的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统(如:JVM、VMwave、VirtualBox)。JVM和其他两个虚拟机
数据结构 | 栈和队列
TT-Kun
数据结构与算法 数据结构 栈 队列 C语言
文章目录栈和队列1.栈:后进先出(LIFO)的数据结构1.1概念与结构1.2栈的实现2.队列:先进先出(FIFO)的数据结构2.1概念与结构2.2队列的实现3.栈和队列算法题3.1有效的括号3.2用队列实现栈3.3用栈实现队列3.4设计循环队列结论栈和队列在计算机科学中,栈和队列是两种基本且重要的数据结构,它们在处理数据存储和访问顺序方面有着独特的规则和应用。本文将详细介绍栈和队列的概念、结构、实
Python神器!WEB自动化测试集成工具 DrissionPage
亚丁号
python 开发语言
一、前言用requests做数据采集面对要登录的网站时,要分析数据包、JS源码,构造复杂的请求,往往还要应付验证码、JS混淆、签名参数等反爬手段,门槛较高。若数据是由JS计算生成的,还须重现计算过程,体验不好,开发效率不高。使用浏览器,可以很大程度上绕过这些坑,但浏览器运行效率不高。因此,这个库设计初衷,是将它们合而为一,能够在不同须要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率
计算机木马详细编写思路
小熊同学哦
php 开发语言 木马 木马思路
导语:计算机木马(ComputerTrojan)是一种恶意软件,通过欺骗用户从而获取系统控制权限,给黑客打开系统后门的一种手段。虽然木马的存在给用户和系统带来严重的安全风险,但是了解它的工作原理与编写思路,对于我们提高防范意识、构建更健壮的网络安全体系具有重要意义。本篇博客将深入剖析计算机木马的详细编写思路,以及如何复杂化挑战,以期提高读者对计算机木马的认识和对抗能力。计算机木马的基本原理计算机木
4 大低成本娱乐方式: 小说, 音乐, 视频, 电子游戏
穷人小水滴
娱乐 音视频 低成本 小说 游戏
穷人如何获得快乐?小说,音乐,视频,游戏,本文简单盘点一下这4大低成本(安全)娱乐方式.这里是穷人小水滴,专注于穷人友好型低成本技术.(本文为58号作品.)目录1娱乐方式1.1小说(网络小说)1.2音乐1.3视频(b站)1.4游戏(电子游戏/计算机软件)2低成本:一只手机即可3总结与展望1娱乐方式这几种,也可以说是艺术的具体形式.更专业的说,(娱乐)是劳动力再生产的重要组成部分.使人放松,获得快乐
计算机网络八股总结
Petrichorzncu
八股总结 计算机网络 笔记
这里写目录标题网络模型划分(五层和七层)及每一层的功能五层网络模型七层网络模型(OSI模型)==三次握手和四次挥手具体过程及原因==三次握手四次挥手TCP/IP协议组成==UDP协议与TCP/IP协议的区别==Http协议相关知识网络地址,子网掩码等相关计算网络模型划分(五层和七层)及每一层的功能五层网络模型应用层:负责处理网络应用程序,如电子邮件、文件传输和网页浏览。主要协议包括HTTP、FTP
matlab delsat = setdiff(1:69,unique(Eph(30,:))); 语句含义
黄卷青灯77
matlab 开发语言 setdiff
这行MATLAB代码用于计算在范围1:69中不包含在Eph矩阵第30行的唯一值集合中的所有元素。具体解释如下:delsat=setdiff(1:69,unique(Eph(30,:)));解释Eph(30,:)Eph(30,:)提取矩阵Eph的第30行的所有列元素。这是一个行向量,包含了第30行的所有值。unique(Eph(30,:))unique函数返回Eph(30,:)中的唯一元素。这意味着
#千锋逆战班 郭燕 学习的一天开启
郭千岁呗
在千锋"逆战"学习云计算第17天加油努力会有好结果复习昨天知识中国加油!武汉加油!千峰加油!我自己加油!
计算机毕业设计PHP仓储综合管理系统(源码+程序+VUE+lw+部署)
java毕设程序源码王哥
php 课程设计 vue.js
该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:phpStudy+Vscode+Mysql5.7+HBuilderX+Navicat11+Vue+Express。项目技术:原生PHP++Vue等等组成,B/S模式+Vscode管理+前后端分离等等。环境需要1.运行环境:最好是小皮phpstudy最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发
经纬恒润二面&三七互娱一面&元象二面
Redstone Monstrosity
面试 前端
1.请尽可能详细地说明,进程和线程的区别,分别有哪些应用场景?进程间如何通信?线程间如何通信?你的回答中不要写出示例代码。进程和线程是操作系统中的两个基本概念,它们在计算机系统中扮演着不同的角色,并且在不同的应用场景中发挥作用。进程和线程的区别定义:进程:进程是操作系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间和系统资源。线程:线程是进程内的一个执行单元,是操作系统进行调度的最小单位
AI大模型的架构演进与最新发展
季风泯灭的季节
AI大模型应用技术二 人工智能 架构
随着深度学习的发展,AI大模型(LargeLanguageModels,LLMs)在自然语言处理、计算机视觉等领域取得了革命性的进展。本文将详细探讨AI大模型的架构演进,包括从Transformer的提出到GPT、BERT、T5等模型的历史演变,并探讨这些模型的技术细节及其在现代人工智能中的核心作用。一、基础模型介绍:Transformer的核心原理Transformer架构的背景在Transfo
孕妈必备:怀孕第一周孕妈和准爸爸需要知道的那些事儿
张女子育儿
对于新婚夫妻来说,怀孕第一周准妈妈和准爸爸都会感觉到既惊喜又有点不知所措吧!怀孕第一周孕妈有什么反应,怀孕第一周孕妈需要注意的事情有哪些呢?准爸爸又该如何照顾孕妇及其为孩子做些什么呢?今日小编就和大家说说怀孕第一周的诸多问题,让孕妈和准爸爸做好准备。怀孕第一周该如何计算呢?人们通常都说准妈妈要“怀胎10月”,但实际上按照阳历计算的话,胎儿在妈妈子宫内生活的时间是没有10个月的。准妈妈得知自己怀孕,
【Java】已解决:java.util.concurrent.CompletionException
屿小夏
java 开发语言
文章目录一、分析问题背景出现问题的场景代码片段二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项已解决:java.util.concurrent.CompletionException一、分析问题背景在Java并发编程中,java.util.concurrent.CompletionException是一种常见的运行时异常,通常在使用CompletableFuture进行异步计算时出现
【加密算法基础——对称加密和非对称加密】
XWWW668899
网络 安全 服务器 笔记
对称加密与非对称加密对称加密和非对称加密是两种基本的加密方法,各自有不同的特点和用途。以下是详细比较:1.对称加密特点密钥:使用相同的密钥进行加密和解密。发送方和接收方必须共享这个密钥。速度:通常速度较快,适合处理大量数据。实现:算法相对简单,计算效率高。常见算法AES(高级加密标准)DES(数据加密标准)3DES(三重数据加密标准)RC4(流密码)应用场景文件加密磁盘加密传输大量数据时的加密2.
信息系统安全相关概念(上)
YuanDaima2048
课程笔记 基础概念 安全 信息安全 笔记
文章总览:YuanDaiMa2048博客文章总览下篇:信息系统安全相关概念(下)信息系统安全相关概念[上]信息系统概述信息系统信息系统架构信息系统发展趋势:信息系统日趋大型化、复杂化信息系统面临的安全威胁信息系统安全架构设计--以云计算为例信息系统安全需求及安全策略自主访问控制策略DAC强制访问控制策略MAC信息系统概述信息系统用于收集、存储和处理数据以及传递信息、知识和数字产品的一组集成组件。几
【2023年】云计算金砖牛刀小试6
geekgold
云计算 服务器 网络 kubernetes 容器
第一套【任务1】私有云服务搭建[10分]【题目1】基础环境配置[0.5分]使用提供的用户名密码,登录提供的OpenStack私有云平台,在当前租户下,使用CentOS7.9镜像,创建两台云主机,云主机类型使用4vCPU/12G/100G_50G类型。当前租户下默认存在一张网卡,自行创建第二张网卡并连接至controller和compute节点(第二张网卡的网段为10.10.X.0/24,X为工位号
Spring中@Value注解,需要注意的地方
无量
spring bean @Value xml
Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作
1、在applicationContext.xml文件(或引用文件中)中配置properties文件
<bean id="appProperty"
class="org.springframework.beans.fac
mongoDB 分片
开窍的石头
mongodb
mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
第一步启动两台以上的mongo服务
&nb
OVER(PARTITION BY)函数用法
0624chenhong
oracle
这篇写得很好,引自
http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
OVER(PARTITION BY)函数用法
2010年10月26日
OVER(PARTITION BY)函数介绍
开窗函数 &nb
Android开发中,ADB server didn't ACK 解决方法
一炮送你回车库
Android开发
首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。
参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。
&nb
canvas中的像素绘制问题
换个号韩国红果果
JavaScript canvas
pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。
2.如果绘制点为一个像素的
编码乱码问题
灵静志远
java jvm jsp 编码
1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。
3、getBytes()、getByte
java 求几个月后的日期
darkranger
calendar getinstance
Date plandate = planDate.toDate();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(plandate);
// 取得三个月后时间
cal.add(Calendar.M
数据库设计的三大范式(通俗易懂)
aijuans
数据库复习
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.
目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。
想学工作流怎么入手
atongyeye
jbpm
工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。
系统学习工作流,很重要的一本书《JBPM工作流开发指南》。
本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。
1 首先要
Context和SQLiteOpenHelper创建数据库
百合不是茶
android Context创建数据库
一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLi
浅谈group by和distinct
bijian1013
oracle 数据库 group by distinct
group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。
譬如:统计每id数并且只显示数大于3
select id ,count(id) from ta
vi opertion
征客丶
mac opration vi
进入 command mode (命令行模式)
按 esc 键
再按 shift + 冒号
注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】
一、文件操作
1.1、强制退出不保存
$ q!
1.2、保存
$ w
1.3、保存并退出
$ wq
1.4、刷新或重新加载已打开的文件
$ e
二、光标移动
2.1、跳到指定行
数字
【Spark十四】深入Spark RDD第三部分RDD基本API
bit1129
spark
对于K/V类型的RDD,如下操作是什么含义?
val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))
rdd.reduceByKey(_+_).collect
reduceByKey在这里的操作,是把
java类加载机制
BlueSkator
java 虚拟机
java类加载机制
1.java类加载器的树状结构
引导类加载器
^
|
扩展类加载器
^
|
系统类加载器
java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。
虚拟机区分一个Cla
动态添加文本框
BreakingBad
文本框
<script> var num=1; function AddInput() { var str=""; str+="<input 
读《研磨设计模式》-代码笔记-单例模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
public class Singleton {
}
/*
* 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题
*/
class LazySingleton
iOS应用打包发布常见问题
chenhbc
ios iOS发布 iOS上传 iOS打包
这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。
1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc
工作流复杂拓扑结构处理新思路
comsci
设计模式 工作 算法 企业应用 OO
我们走的设计路线和国外的产品不太一样,不一样在哪里呢? 国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很
oracle 11g新特性Flashback data archive
daizj
oracle
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
多叉树:2-3-4树
dieslrae
树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:
1、有一个数据项的节点总是有2个子节点(称为2-节点)
2、有两个数据项的节点总是有3个子节点(称为3-节
C语言学习七动态分配 malloc的使用
dcj3sjt126com
c language malloc
/*
2013年3月15日15:16:24
malloc 就memory(内存) allocate(分配)的缩写
本程序没有实际含义,只是理解使用
*/
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int i = 5; //分配了4个字节 静态分配
int * p
Objective-C编码规范[译]
dcj3sjt126com
代码规范
原文链接 : The official raywenderlich.com Objective-C style guide
原文作者 : raywenderlich.com Team
译文出自 : raywenderlich.com Objective-C编码规范
译者 : Sam Lau
0.性能优化-目录
frank1234
性能优化
从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。
主要内容包括:
一、性能测试指标
吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间
http://frank1234.iteye.com/blog/2180305
二、性能测试策略
生产环境相同 基准测试 预热等
htt
Java父类取得子类传递的泛型参数Class类型
happyqing
java 泛型 父类 子类 Class
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao<T> {
public void getType() {
//Class<E> clazz =
跟我学SpringMVC目录汇总贴、PDF下载、源码下载
jinnianshilongnian
springMVC
----广告--------------------------------------------------------------
网站核心商详页开发
掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架;
掌握数据库技术,表设计和索引优化,分库分表/读写分离;
了解缓存技术,熟练使用如Redis/Memcached等主流技术;
了解Ngin
the HTTP rewrite module requires the PCRE library
流浪鱼
rewrite
./configure: error: the HTTP rewrite module requires the PCRE library.
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. s
第12章 Ajax(中)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Optimize query with Query Stripping in Web Intelligence
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence
and a very straightfoward video
http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936
Java开发者写SQL时常犯的10个错误
tomcat_oracle
java sql
1、不用PreparedStatements 有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个: 他们对PreparedStatements不了解 他们认为使用PreparedStatements太慢了 他们认为写Prepar
世纪互联与结盟有感
阿尔萨斯
10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。
全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。
众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟